StringUtils.java

1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package org.apache.commons.lang3;
18
19
import java.io.UnsupportedEncodingException;
20
import java.nio.charset.Charset;
21
import java.text.Normalizer;
22
import java.util.ArrayList;
23
import java.util.Arrays;
24
import java.util.HashSet;
25
import java.util.Iterator;
26
import java.util.List;
27
import java.util.Locale;
28
import java.util.Objects;
29
import java.util.Set;
30
import java.util.function.Supplier;
31
import java.util.regex.Pattern;
32
33
import org.apache.commons.lang3.function.Suppliers;
34
import org.apache.commons.lang3.function.ToBooleanBiFunction;
35
import org.apache.commons.lang3.stream.LangCollectors;
36
import org.apache.commons.lang3.stream.Streams;
37
38
/**
39
 * Operations on {@link String} that are
40
 * {@code null} safe.
41
 *
42
 * <ul>
43
 *  <li><b>IsEmpty/IsBlank</b>
44
 *      - checks if a String contains text</li>
45
 *  <li><b>Trim/Strip</b>
46
 *      - removes leading and trailing whitespace</li>
47
 *  <li><b>Equals/Compare</b>
48
 *      - compares two strings in a null-safe manner</li>
49
 *  <li><b>startsWith</b>
50
 *      - check if a String starts with a prefix in a null-safe manner</li>
51
 *  <li><b>endsWith</b>
52
 *      - check if a String ends with a suffix in a null-safe manner</li>
53
 *  <li><b>IndexOf/LastIndexOf/Contains</b>
54
 *      - null-safe index-of checks
55
 *  <li><b>IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut</b>
56
 *      - index-of any of a set of Strings</li>
57
 *  <li><b>ContainsOnly/ContainsNone/ContainsAny</b>
58
 *      - checks if String contains only/none/any of these characters</li>
59
 *  <li><b>Substring/Left/Right/Mid</b>
60
 *      - null-safe substring extractions</li>
61
 *  <li><b>SubstringBefore/SubstringAfter/SubstringBetween</b>
62
 *      - substring extraction relative to other strings</li>
63
 *  <li><b>Split/Join</b>
64
 *      - splits a String into an array of substrings and vice versa</li>
65
 *  <li><b>Remove/Delete</b>
66
 *      - removes part of a String</li>
67
 *  <li><b>Replace/Overlay</b>
68
 *      - Searches a String and replaces one String with another</li>
69
 *  <li><b>Chomp/Chop</b>
70
 *      - removes the last part of a String</li>
71
 *  <li><b>AppendIfMissing</b>
72
 *      - appends a suffix to the end of the String if not present</li>
73
 *  <li><b>PrependIfMissing</b>
74
 *      - prepends a prefix to the start of the String if not present</li>
75
 *  <li><b>LeftPad/RightPad/Center/Repeat</b>
76
 *      - pads a String</li>
77
 *  <li><b>UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize</b>
78
 *      - changes the case of a String</li>
79
 *  <li><b>CountMatches</b>
80
 *      - counts the number of occurrences of one String in another</li>
81
 *  <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
82
 *      - checks the characters in a String</li>
83
 *  <li><b>DefaultString</b>
84
 *      - protects against a null input String</li>
85
 *  <li><b>Rotate</b>
86
 *      - rotate (circular shift) a String</li>
87
 *  <li><b>Reverse/ReverseDelimited</b>
88
 *      - reverses a String</li>
89
 *  <li><b>Abbreviate</b>
90
 *      - abbreviates a string using ellipses or another given String</li>
91
 *  <li><b>Difference</b>
92
 *      - compares Strings and reports on their differences</li>
93
 *  <li><b>LevenshteinDistance</b>
94
 *      - the number of changes needed to change one String into another</li>
95
 * </ul>
96
 *
97
 * <p>The {@link StringUtils} class defines certain words related to
98
 * String handling.</p>
99
 *
100
 * <ul>
101
 *  <li>null - {@code null}</li>
102
 *  <li>empty - a zero-length string ({@code ""})</li>
103
 *  <li>space - the space character ({@code ' '}, char 32)</li>
104
 *  <li>whitespace - the characters defined by {@link Character#isWhitespace(char)}</li>
105
 *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
106
 * </ul>
107
 *
108
 * <p>{@link StringUtils} handles {@code null} input Strings quietly.
109
 * That is to say that a {@code null} input will return {@code null}.
110
 * Where a {@code boolean} or {@code int} is being returned
111
 * details vary by method.</p>
112
 *
113
 * <p>A side effect of the {@code null} handling is that a
114
 * {@link NullPointerException} should be considered a bug in
115
 * {@link StringUtils}.</p>
116
 *
117
 * <p>Methods in this class include sample code in their Javadoc comments to explain their operation.
118
 * The symbol {@code *} is used to indicate any input including {@code null}.</p>
119
 *
120
 * <p>#ThreadSafe#</p>
121
 * @see String
122
 * @since 1.0
123
 */
124
//@Immutable
125
public class StringUtils {
126
127
    // Performance testing notes (JDK 1.4, Jul03, scolebourne)
128
    // Whitespace:
129
    // Character.isWhitespace() is faster than WHITESPACE.indexOf()
130
    // where WHITESPACE is a string of all whitespace characters
131
    //
132
    // Character access:
133
    // String.charAt(n) versus toCharArray(), then array[n]
134
    // String.charAt(n) is about 15% worse for a 10K string
135
    // They are about equal for a length 50 string
136
    // String.charAt(n) is about 4 times better for a length 3 string
137
    // String.charAt(n) is best bet overall
138
    //
139
    // Append:
140
    // String.concat about twice as fast as StringBuffer.append
141
    // (not sure who tested this)
142
143
    /**
144
     * A String for a space character.
145
     *
146
     * @since 3.2
147
     */
148
    public static final String SPACE = " ";
149
150
    /**
151
     * The empty String {@code ""}.
152
     * @since 2.0
153
     */
154
    public static final String EMPTY = "";
155
156
    /**
157
     * A String for linefeed LF ("\n").
158
     *
159
     * @see <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
160
     *      for Character and String Literals</a>
161
     * @since 3.2
162
     */
163
    public static final String LF = "\n";
164
165
    /**
166
     * A String for carriage return CR ("\r").
167
     *
168
     * @see <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
169
     *      for Character and String Literals</a>
170
     * @since 3.2
171
     */
172
    public static final String CR = "\r";
173
174
    /**
175
     * Represents a failed index search.
176
     * @since 2.1
177
     */
178
    public static final int INDEX_NOT_FOUND = -1;
179
180
    /**
181
     * The maximum size to which the padding constant(s) can expand.
182
     */
183
    private static final int PAD_LIMIT = 8192;
184
185
    /**
186
     * Pattern used in {@link #stripAccents(String)}.
187
     */
188
    private static final Pattern STRIP_ACCENTS_PATTERN = Pattern.compile("\\p{InCombiningDiacriticalMarks}+"); //$NON-NLS-1$
189
190
    /**
191
     * Abbreviates a String using ellipses. This will turn
192
     * "Now is the time for all good men" into "Now is the time for..."
193
     *
194
     * <p>Specifically:</p>
195
     * <ul>
196
     *   <li>If the number of characters in {@code str} is less than or equal to
197
     *       {@code maxWidth}, return {@code str}.</li>
198
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
199
     *   <li>If {@code maxWidth} is less than {@code 4}, throw an
200
     *       {@link IllegalArgumentException}.</li>
201
     *   <li>In no case will it return a String of length greater than
202
     *       {@code maxWidth}.</li>
203
     * </ul>
204
     *
205
     * <pre>
206
     * StringUtils.abbreviate(null, *)      = null
207
     * StringUtils.abbreviate("", 4)        = ""
208
     * StringUtils.abbreviate("abcdefg", 6) = "abc..."
209
     * StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
210
     * StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
211
     * StringUtils.abbreviate("abcdefg", 4) = "a..."
212
     * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
213
     * </pre>
214
     *
215
     * @param str  the String to check, may be null
216
     * @param maxWidth  maximum length of result String, must be at least 4
217
     * @return abbreviated String, {@code null} if null String input
218
     * @throws IllegalArgumentException if the width is too small
219
     * @since 2.0
220
     */
221
    public static String abbreviate(final String str, final int maxWidth) {
222 1 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
        return abbreviate(str, "...", 0, maxWidth);
223
    }
224
225
    /**
226
     * Abbreviates a String using ellipses. This will turn
227
     * "Now is the time for all good men" into "...is the time for..."
228
     *
229
     * <p>Works like {@code abbreviate(String, int)}, but allows you to specify
230
     * a "left edge" offset.  Note that this left edge is not necessarily going to
231
     * be the leftmost character in the result, or the first character following the
232
     * ellipses, but it will appear somewhere in the result.
233
     *
234
     * <p>In no case will it return a String of length greater than
235
     * {@code maxWidth}.</p>
236
     *
237
     * <pre>
238
     * StringUtils.abbreviate(null, *, *)                = null
239
     * StringUtils.abbreviate("", 0, 4)                  = ""
240
     * StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
241
     * StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
242
     * StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
243
     * StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
244
     * StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
245
     * StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
246
     * StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
247
     * StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
248
     * StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
249
     * StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
250
     * StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
251
     * </pre>
252
     *
253
     * @param str  the String to check, may be null
254
     * @param offset  left edge of source String
255
     * @param maxWidth  maximum length of result String, must be at least 4
256
     * @return abbreviated String, {@code null} if null String input
257
     * @throws IllegalArgumentException if the width is too small
258
     * @since 2.0
259
     */
260
    public static String abbreviate(final String str, final int offset, final int maxWidth) {
261 1 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
        return abbreviate(str, "...", offset, maxWidth);
262
    }
263
264
    /**
265
     * Abbreviates a String using another given String as replacement marker. This will turn
266
     * "Now is the time for all good men" into "Now is the time for..." if "..." was defined
267
     * as the replacement marker.
268
     *
269
     * <p>Specifically:</p>
270
     * <ul>
271
     *   <li>If the number of characters in {@code str} is less than or equal to
272
     *       {@code maxWidth}, return {@code str}.</li>
273
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
274
     *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
275
     *       {@link IllegalArgumentException}.</li>
276
     *   <li>In no case will it return a String of length greater than
277
     *       {@code maxWidth}.</li>
278
     * </ul>
279
     *
280
     * <pre>
281
     * StringUtils.abbreviate(null, "...", *)      = null
282
     * StringUtils.abbreviate("abcdefg", null, *)  = "abcdefg"
283
     * StringUtils.abbreviate("", "...", 4)        = ""
284
     * StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
285
     * StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
286
     * StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
287
     * StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
288
     * StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
289
     * StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
290
     * StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
291
     * </pre>
292
     *
293
     * @param str  the String to check, may be null
294
     * @param abbrevMarker  the String used as replacement marker
295
     * @param maxWidth  maximum length of result String, must be at least {@code abbrevMarker.length + 1}
296
     * @return abbreviated String, {@code null} if null String input
297
     * @throws IllegalArgumentException if the width is too small
298
     * @since 3.6
299
     */
300
    public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
301 1 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
        return abbreviate(str, abbrevMarker, 0, maxWidth);
302
    }
303
    /**
304
     * Abbreviates a String using a given replacement marker. This will turn
305
     * "Now is the time for all good men" into "...is the time for..." if "..." was defined
306
     * as the replacement marker.
307
     *
308
     * <p>Works like {@code abbreviate(String, String, int)}, but allows you to specify
309
     * a "left edge" offset.  Note that this left edge is not necessarily going to
310
     * be the leftmost character in the result, or the first character following the
311
     * replacement marker, but it will appear somewhere in the result.
312
     *
313
     * <p>In no case will it return a String of length greater than {@code maxWidth}.</p>
314
     *
315
     * <pre>
316
     * StringUtils.abbreviate(null, null, *, *)                 = null
317
     * StringUtils.abbreviate("abcdefghijklmno", null, *, *)    = "abcdefghijklmno"
318
     * StringUtils.abbreviate("", "...", 0, 4)                  = ""
319
     * StringUtils.abbreviate("abcdefghijklmno", "---", -1, 10) = "abcdefg---"
320
     * StringUtils.abbreviate("abcdefghijklmno", ",", 0, 10)    = "abcdefghi,"
321
     * StringUtils.abbreviate("abcdefghijklmno", ",", 1, 10)    = "abcdefghi,"
322
     * StringUtils.abbreviate("abcdefghijklmno", ",", 2, 10)    = "abcdefghi,"
323
     * StringUtils.abbreviate("abcdefghijklmno", "::", 4, 10)   = "::efghij::"
324
     * StringUtils.abbreviate("abcdefghijklmno", "...", 6, 10)  = "...ghij..."
325
     * StringUtils.abbreviate("abcdefghijklmno", "*", 9, 10)    = "*ghijklmno"
326
     * StringUtils.abbreviate("abcdefghijklmno", "'", 10, 10)   = "'ghijklmno"
327
     * StringUtils.abbreviate("abcdefghijklmno", "!", 12, 10)   = "!ghijklmno"
328
     * StringUtils.abbreviate("abcdefghij", "abra", 0, 4)       = IllegalArgumentException
329
     * StringUtils.abbreviate("abcdefghij", "...", 5, 6)        = IllegalArgumentException
330
     * </pre>
331
     *
332
     * @param str  the String to check, may be null
333
     * @param abbrevMarker  the String used as replacement marker
334
     * @param offset  left edge of source String
335
     * @param maxWidth  maximum length of result String, must be at least 4
336
     * @return abbreviated String, {@code null} if null String input
337
     * @throws IllegalArgumentException if the width is too small
338
     * @since 3.6
339
     */
340
    public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
341 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
3. abbreviate : negated conditional → KILLED
4. abbreviate : negated conditional → KILLED
        if (isNotEmpty(str) && EMPTY.equals(abbrevMarker) && maxWidth > 0) {
342 1 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
            return substring(str, 0, maxWidth);
343
        }
344 1 1. abbreviate : negated conditional → KILLED
        if (isAnyEmpty(str, abbrevMarker)) {
345 1 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
            return str;
346
        }
347
        final int abbrevMarkerLength = abbrevMarker.length();
348 1 1. abbreviate : Replaced integer addition with subtraction → KILLED
        final int minAbbrevWidth = abbrevMarkerLength + 1;
349 2 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
        final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;
350
351 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidth) {
352
            throw new IllegalArgumentException(String.format("Minimum abbreviation width is %d", minAbbrevWidth));
353
        }
354
        final int strLen = str.length();
355 2 1. abbreviate : negated conditional → KILLED
2. abbreviate : changed conditional boundary → KILLED
        if (strLen <= maxWidth) {
356 1 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
            return str;
357
        }
358 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (offset > strLen) {
359
            offset = strLen;
360
        }
361 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → SURVIVED
3. abbreviate : negated conditional → KILLED
4. abbreviate : Replaced integer subtraction with addition → KILLED
        if (strLen - offset < maxWidth - abbrevMarkerLength) {
362 2 1. abbreviate : Replaced integer subtraction with addition → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            offset = strLen - (maxWidth - abbrevMarkerLength);
363
        }
364 3 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
3. abbreviate : Replaced integer addition with subtraction → KILLED
        if (offset <= abbrevMarkerLength + 1) {
365 2 1. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            return str.substring(0, maxWidth - abbrevMarkerLength) + abbrevMarker;
366
        }
367 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidthOffset) {
368
            throw new IllegalArgumentException(String.format("Minimum abbreviation width with offset is %d", minAbbrevWidthOffset));
369
        }
370 4 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : changed conditional boundary → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (offset + maxWidth - abbrevMarkerLength < strLen) {
371 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
            return abbrevMarker + abbreviate(str.substring(offset), abbrevMarker, maxWidth - abbrevMarkerLength);
372
        }
373 3 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
3. abbreviate : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED
        return abbrevMarker + str.substring(strLen - (maxWidth - abbrevMarkerLength));
374
    }
375
376
    /**
377
     * Abbreviates a String to the length passed, replacing the middle characters with the supplied
378
     * replacement String.
379
     *
380
     * <p>This abbreviation only occurs if the following criteria is met:</p>
381
     * <ul>
382
     * <li>Neither the String for abbreviation nor the replacement String are null or empty </li>
383
     * <li>The length to truncate to is less than the length of the supplied String</li>
384
     * <li>The length to truncate to is greater than 0</li>
385
     * <li>The abbreviated String will have enough room for the length supplied replacement String
386
     * and the first and last characters of the supplied String for abbreviation</li>
387
     * </ul>
388
     * <p>Otherwise, the returned String will be the same as the supplied String for abbreviation.
389
     * </p>
390
     *
391
     * <pre>
392
     * StringUtils.abbreviateMiddle(null, null, 0)    = null
393
     * StringUtils.abbreviateMiddle("abc", null, 0)   = "abc"
394
     * StringUtils.abbreviateMiddle("abc", ".", 0)    = "abc"
395
     * StringUtils.abbreviateMiddle("abc", ".", 3)    = "abc"
396
     * StringUtils.abbreviateMiddle("abcdef", ".", 4) = "ab.f"
397
     * </pre>
398
     *
399
     * @param str  the String to abbreviate, may be null
400
     * @param middle the String to replace the middle characters with, may be null
401
     * @param length the length to abbreviate {@code str} to.
402
     * @return the abbreviated String if the above criteria is met, or the original String supplied for abbreviation.
403
     * @since 2.5
404
     */
405
    public static String abbreviateMiddle(final String str, final String middle, final int length) {
406 6 1. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
2. abbreviateMiddle : negated conditional → KILLED
3. abbreviateMiddle : changed conditional boundary → KILLED
4. abbreviateMiddle : negated conditional → KILLED
5. abbreviateMiddle : negated conditional → KILLED
6. abbreviateMiddle : changed conditional boundary → KILLED
        if (isAnyEmpty(str, middle) || length >= str.length() || length < middle.length() + 2) {
407 1 1. abbreviateMiddle : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviateMiddle → KILLED
            return str;
408
        }
409 1 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int targetSting = length - middle.length();
410 3 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
3. abbreviateMiddle : Replaced integer modulus with multiplication → KILLED
        final int startOffset = targetSting / 2 + targetSting % 2;
411 2 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
2. abbreviateMiddle : Replaced integer division with multiplication → KILLED
        final int endOffset = str.length() - targetSting / 2;
412 1 1. abbreviateMiddle : replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviateMiddle → KILLED
        return str.substring(0, startOffset) + middle + str.substring(endOffset);
413
    }
414
415
    /**
416
     * Appends the suffix to the end of the string if the string does not
417
     * already end with the suffix.
418
     *
419
     * @param str The string.
420
     * @param suffix The suffix to append to the end of the string.
421
     * @param ignoreCase Indicates whether the compare should ignore case.
422
     * @param suffixes Additional suffixes that are valid terminators (optional).
423
     *
424
     * @return A new String if suffix was appended, the same string otherwise.
425
     */
426
    private static String appendIfMissing(final String str, final CharSequence suffix, final boolean ignoreCase, final CharSequence... suffixes) {
427 3 1. appendIfMissing : negated conditional → KILLED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(suffix) || endsWith(str, suffix, ignoreCase)) {
428 1 1. appendIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED
            return str;
429
        }
430 1 1. appendIfMissing : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(suffixes)) {
431
            for (final CharSequence s : suffixes) {
432 1 1. appendIfMissing : negated conditional → KILLED
                if (endsWith(str, s, ignoreCase)) {
433 1 1. appendIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED
                    return str;
434
                }
435
            }
436
        }
437 1 1. appendIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED
        return str + suffix;
438
    }
439
440
    /**
441
     * Appends the suffix to the end of the string if the string does not
442
     * already end with any of the suffixes.
443
     *
444
     * <pre>
445
     * StringUtils.appendIfMissing(null, null)      = null
446
     * StringUtils.appendIfMissing("abc", null)     = "abc"
447
     * StringUtils.appendIfMissing("", "xyz"        = "xyz"
448
     * StringUtils.appendIfMissing("abc", "xyz")    = "abcxyz"
449
     * StringUtils.appendIfMissing("abcxyz", "xyz") = "abcxyz"
450
     * StringUtils.appendIfMissing("abcXYZ", "xyz") = "abcXYZxyz"
451
     * </pre>
452
     * <p>With additional suffixes,</p>
453
     * <pre>
454
     * StringUtils.appendIfMissing(null, null, null)       = null
455
     * StringUtils.appendIfMissing("abc", null, null)      = "abc"
456
     * StringUtils.appendIfMissing("", "xyz", null)        = "xyz"
457
     * StringUtils.appendIfMissing("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
458
     * StringUtils.appendIfMissing("abc", "xyz", "")       = "abc"
459
     * StringUtils.appendIfMissing("abc", "xyz", "mno")    = "abcxyz"
460
     * StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"
461
     * StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"
462
     * StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"
463
     * StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"
464
     * </pre>
465
     *
466
     * @param str The string.
467
     * @param suffix The suffix to append to the end of the string.
468
     * @param suffixes Additional suffixes that are valid terminators.
469
     *
470
     * @return A new String if suffix was appended, the same string otherwise.
471
     *
472
     * @since 3.2
473
     */
474
    public static String appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes) {
475 1 1. appendIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED
        return appendIfMissing(str, suffix, false, suffixes);
476
    }
477
478
    /**
479
     * Appends the suffix to the end of the string if the string does not
480
     * already end, case-insensitive, with any of the suffixes.
481
     *
482
     * <pre>
483
     * StringUtils.appendIfMissingIgnoreCase(null, null)      = null
484
     * StringUtils.appendIfMissingIgnoreCase("abc", null)     = "abc"
485
     * StringUtils.appendIfMissingIgnoreCase("", "xyz")       = "xyz"
486
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz")    = "abcxyz"
487
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz") = "abcxyz"
488
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz") = "abcXYZ"
489
     * </pre>
490
     * <p>With additional suffixes,</p>
491
     * <pre>
492
     * StringUtils.appendIfMissingIgnoreCase(null, null, null)       = null
493
     * StringUtils.appendIfMissingIgnoreCase("abc", null, null)      = "abc"
494
     * StringUtils.appendIfMissingIgnoreCase("", "xyz", null)        = "xyz"
495
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
496
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "")       = "abc"
497
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "mno")    = "abcxyz"
498
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz", "mno") = "abcxyz"
499
     * StringUtils.appendIfMissingIgnoreCase("abcmno", "xyz", "mno") = "abcmno"
500
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz", "mno") = "abcXYZ"
501
     * StringUtils.appendIfMissingIgnoreCase("abcMNO", "xyz", "mno") = "abcMNO"
502
     * </pre>
503
     *
504
     * @param str The string.
505
     * @param suffix The suffix to append to the end of the string.
506
     * @param suffixes Additional suffixes that are valid terminators.
507
     *
508
     * @return A new String if suffix was appended, the same string otherwise.
509
     *
510
     * @since 3.2
511
     */
512
    public static String appendIfMissingIgnoreCase(final String str, final CharSequence suffix, final CharSequence... suffixes) {
513 1 1. appendIfMissingIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase → KILLED
        return appendIfMissing(str, suffix, true, suffixes);
514
    }
515
516
    /**
517
     * Capitalizes a String changing the first character to title case as
518
     * per {@link Character#toTitleCase(int)}. No other characters are changed.
519
     *
520
     * <p>For a word based algorithm, see {@link org.apache.commons.text.WordUtils#capitalize(String)}.
521
     * A {@code null} input String returns {@code null}.</p>
522
     *
523
     * <pre>
524
     * StringUtils.capitalize(null)    = null
525
     * StringUtils.capitalize("")      = ""
526
     * StringUtils.capitalize("cat")   = "Cat"
527
     * StringUtils.capitalize("cAt")   = "CAt"
528
     * StringUtils.capitalize("'cat'") = "'cat'"
529
     * </pre>
530
     *
531
     * @param str the String to capitalize, may be null
532
     * @return the capitalized String, {@code null} if null String input
533
     * @see org.apache.commons.text.WordUtils#capitalize(String)
534
     * @see #uncapitalize(String)
535
     * @since 2.0
536
     */
537
    public static String capitalize(final String str) {
538
        final int strLen = length(str);
539 1 1. capitalize : negated conditional → KILLED
        if (strLen == 0) {
540 1 1. capitalize : replaced return value with "" for org/apache/commons/lang3/StringUtils::capitalize → KILLED
            return str;
541
        }
542
543
        final int firstCodepoint = str.codePointAt(0);
544
        final int newCodePoint = Character.toTitleCase(firstCodepoint);
545 1 1. capitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
546
            // already capitalized
547 1 1. capitalize : replaced return value with "" for org/apache/commons/lang3/StringUtils::capitalize → KILLED
            return str;
548
        }
549
550
        final int[] newCodePoints = new int[strLen]; // cannot be longer than the char array
551
        int outOffset = 0;
552 1 1. capitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first code point
553 2 1. capitalize : changed conditional boundary → KILLED
2. capitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
554
            final int codePoint = str.codePointAt(inOffset);
555 1 1. capitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codePoint; // copy the remaining ones
556 1 1. capitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codePoint);
557
         }
558 1 1. capitalize : replaced return value with "" for org/apache/commons/lang3/StringUtils::capitalize → KILLED
        return new String(newCodePoints, 0, outOffset);
559
    }
560
561
    /**
562
     * Centers a String in a larger String of size {@code size}
563
     * using the space character (' ').
564
     *
565
     * <p>If the size is less than the String length, the original String is returned.
566
     * A {@code null} String returns {@code null}.
567
     * A negative size is treated as zero.</p>
568
     *
569
     * <p>Equivalent to {@code center(str, size, " ")}.</p>
570
     *
571
     * <pre>
572
     * StringUtils.center(null, *)   = null
573
     * StringUtils.center("", 4)     = "    "
574
     * StringUtils.center("ab", -1)  = "ab"
575
     * StringUtils.center("ab", 4)   = " ab "
576
     * StringUtils.center("abcd", 2) = "abcd"
577
     * StringUtils.center("a", 4)    = " a  "
578
     * </pre>
579
     *
580
     * @param str  the String to center, may be null
581
     * @param size  the int size of new String, negative treated as zero
582
     * @return centered String, {@code null} if null String input
583
     */
584
    public static String center(final String str, final int size) {
585 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
        return center(str, size, ' ');
586
    }
587
588
    /**
589
     * Centers a String in a larger String of size {@code size}.
590
     * Uses a supplied character as the value to pad the String with.
591
     *
592
     * <p>If the size is less than the String length, the String is returned.
593
     * A {@code null} String returns {@code null}.
594
     * A negative size is treated as zero.</p>
595
     *
596
     * <pre>
597
     * StringUtils.center(null, *, *)     = null
598
     * StringUtils.center("", 4, ' ')     = "    "
599
     * StringUtils.center("ab", -1, ' ')  = "ab"
600
     * StringUtils.center("ab", 4, ' ')   = " ab "
601
     * StringUtils.center("abcd", 2, ' ') = "abcd"
602
     * StringUtils.center("a", 4, ' ')    = " a  "
603
     * StringUtils.center("a", 4, 'y')    = "yayy"
604
     * </pre>
605
     *
606
     * @param str  the String to center, may be null
607
     * @param size  the int size of new String, negative treated as zero
608
     * @param padChar  the character to pad the new String with
609
     * @return centered String, {@code null} if null String input
610
     * @since 2.0
611
     */
612
    public static String center(String str, final int size, final char padChar) {
613 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
614 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
            return str;
615
        }
616
        final int strLen = str.length();
617 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
618 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
619 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
            return str;
620
        }
621 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padChar);
622 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
        return rightPad(str, size, padChar);
623
    }
624
625
    /**
626
     * Centers a String in a larger String of size {@code size}.
627
     * Uses a supplied String as the value to pad the String with.
628
     *
629
     * <p>If the size is less than the String length, the String is returned.
630
     * A {@code null} String returns {@code null}.
631
     * A negative size is treated as zero.</p>
632
     *
633
     * <pre>
634
     * StringUtils.center(null, *, *)     = null
635
     * StringUtils.center("", 4, " ")     = "    "
636
     * StringUtils.center("ab", -1, " ")  = "ab"
637
     * StringUtils.center("ab", 4, " ")   = " ab "
638
     * StringUtils.center("abcd", 2, " ") = "abcd"
639
     * StringUtils.center("a", 4, " ")    = " a  "
640
     * StringUtils.center("a", 4, "yz")   = "yayz"
641
     * StringUtils.center("abc", 7, null) = "  abc  "
642
     * StringUtils.center("abc", 7, "")   = "  abc  "
643
     * </pre>
644
     *
645
     * @param str  the String to center, may be null
646
     * @param size  the int size of new String, negative treated as zero
647
     * @param padStr  the String to pad the new String with, must not be null or empty
648
     * @return centered String, {@code null} if null String input
649
     * @throws IllegalArgumentException if padStr is {@code null} or empty
650
     */
651
    public static String center(String str, final int size, String padStr) {
652 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
653 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
            return str;
654
        }
655 1 1. center : negated conditional → KILLED
        if (isEmpty(padStr)) {
656
            padStr = SPACE;
657
        }
658
        final int strLen = str.length();
659 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
660 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
661 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
            return str;
662
        }
663 2 1. center : Replaced integer addition with subtraction → KILLED
2. center : Replaced integer division with multiplication → KILLED
        str = leftPad(str, strLen + pads / 2, padStr);
664 1 1. center : replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED
        return rightPad(str, size, padStr);
665
    }
666
667
    /**
668
     * Removes one newline from end of a String if it's there,
669
     * otherwise leave it alone.  A newline is &quot;{@code \n}&quot;,
670
     * &quot;{@code \r}&quot;, or &quot;{@code \r\n}&quot;.
671
     *
672
     * <p>NOTE: This method changed in 2.0.
673
     * It now more closely matches Perl chomp.</p>
674
     *
675
     * <pre>
676
     * StringUtils.chomp(null)          = null
677
     * StringUtils.chomp("")            = ""
678
     * StringUtils.chomp("abc \r")      = "abc "
679
     * StringUtils.chomp("abc\n")       = "abc"
680
     * StringUtils.chomp("abc\r\n")     = "abc"
681
     * StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"
682
     * StringUtils.chomp("abc\n\r")     = "abc\n"
683
     * StringUtils.chomp("abc\n\rabc")  = "abc\n\rabc"
684
     * StringUtils.chomp("\r")          = ""
685
     * StringUtils.chomp("\n")          = ""
686
     * StringUtils.chomp("\r\n")        = ""
687
     * </pre>
688
     *
689
     * @param str  the String to chomp a newline from, may be null
690
     * @return String without newline, {@code null} if null String input
691
     */
692
    public static String chomp(final String str) {
693 1 1. chomp : negated conditional → KILLED
        if (isEmpty(str)) {
694 1 1. chomp : replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED
            return str;
695
        }
696
697 1 1. chomp : negated conditional → KILLED
        if (str.length() == 1) {
698
            final char ch = str.charAt(0);
699 2 1. chomp : negated conditional → KILLED
2. chomp : negated conditional → KILLED
            if (ch == CharUtils.CR || ch == CharUtils.LF) {
700
                return EMPTY;
701
            }
702 1 1. chomp : replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED
            return str;
703
        }
704
705 1 1. chomp : Replaced integer subtraction with addition → KILLED
        int lastIdx = str.length() - 1;
706
        final char last = str.charAt(lastIdx);
707
708 1 1. chomp : negated conditional → KILLED
        if (last == CharUtils.LF) {
709 2 1. chomp : negated conditional → KILLED
2. chomp : Replaced integer subtraction with addition → KILLED
            if (str.charAt(lastIdx - 1) == CharUtils.CR) {
710 1 1. chomp : Changed increment from -1 to 1 → KILLED
                lastIdx--;
711
            }
712 1 1. chomp : negated conditional → KILLED
        } else if (last != CharUtils.CR) {
713 1 1. chomp : Changed increment from 1 to -1 → KILLED
            lastIdx++;
714
        }
715 1 1. chomp : replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED
        return str.substring(0, lastIdx);
716
    }
717
718
    /**
719
     * Removes {@code separator} from the end of
720
     * {@code str} if it's there, otherwise leave it alone.
721
     *
722
     * <p>NOTE: This method changed in version 2.0.
723
     * It now more closely matches Perl chomp.
724
     * For the previous behavior, use {@link #substringBeforeLast(String, String)}.
725
     * This method uses {@link String#endsWith(String)}.</p>
726
     *
727
     * <pre>
728
     * StringUtils.chomp(null, *)         = null
729
     * StringUtils.chomp("", *)           = ""
730
     * StringUtils.chomp("foobar", "bar") = "foo"
731
     * StringUtils.chomp("foobar", "baz") = "foobar"
732
     * StringUtils.chomp("foo", "foo")    = ""
733
     * StringUtils.chomp("foo ", "foo")   = "foo "
734
     * StringUtils.chomp(" foo", "foo")   = " "
735
     * StringUtils.chomp("foo", "foooo")  = "foo"
736
     * StringUtils.chomp("foo", "")       = "foo"
737
     * StringUtils.chomp("foo", null)     = "foo"
738
     * </pre>
739
     *
740
     * @param str  the String to chomp from, may be null
741
     * @param separator  separator String, may be null
742
     * @return String without trailing separator, {@code null} if null String input
743
     * @deprecated This feature will be removed in Lang 4, use {@link StringUtils#removeEnd(String, String)} instead
744
     */
745
    @Deprecated
746
    public static String chomp(final String str, final String separator) {
747 1 1. chomp : replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED
        return removeEnd(str, separator);
748
    }
749
750
    /**
751
     * Remove the last character from a String.
752
     *
753
     * <p>If the String ends in {@code \r\n}, then remove both
754
     * of them.</p>
755
     *
756
     * <pre>
757
     * StringUtils.chop(null)          = null
758
     * StringUtils.chop("")            = ""
759
     * StringUtils.chop("abc \r")      = "abc "
760
     * StringUtils.chop("abc\n")       = "abc"
761
     * StringUtils.chop("abc\r\n")     = "abc"
762
     * StringUtils.chop("abc")         = "ab"
763
     * StringUtils.chop("abc\nabc")    = "abc\nab"
764
     * StringUtils.chop("a")           = ""
765
     * StringUtils.chop("\r")          = ""
766
     * StringUtils.chop("\n")          = ""
767
     * StringUtils.chop("\r\n")        = ""
768
     * </pre>
769
     *
770
     * @param str  the String to chop last character from, may be null
771
     * @return String without last character, {@code null} if null String input
772
     */
773
    public static String chop(final String str) {
774 1 1. chop : negated conditional → KILLED
        if (str == null) {
775 1 1. chop : replaced return value with "" for org/apache/commons/lang3/StringUtils::chop → KILLED
            return null;
776
        }
777
        final int strLen = str.length();
778 2 1. chop : changed conditional boundary → SURVIVED
2. chop : negated conditional → KILLED
        if (strLen < 2) {
779
            return EMPTY;
780
        }
781 1 1. chop : Replaced integer subtraction with addition → KILLED
        final int lastIdx = strLen - 1;
782
        final String ret = str.substring(0, lastIdx);
783
        final char last = str.charAt(lastIdx);
784 3 1. chop : negated conditional → KILLED
2. chop : negated conditional → KILLED
3. chop : Replaced integer subtraction with addition → KILLED
        if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
785 2 1. chop : replaced return value with "" for org/apache/commons/lang3/StringUtils::chop → KILLED
2. chop : Replaced integer subtraction with addition → KILLED
            return ret.substring(0, lastIdx - 1);
786
        }
787 1 1. chop : replaced return value with "" for org/apache/commons/lang3/StringUtils::chop → KILLED
        return ret;
788
    }
789
790
    /**
791
     * Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :
792
     * <ul>
793
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
794
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
795
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
796
     * </ul>
797
     *
798
     * <p>This is a {@code null} safe version of :</p>
799
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
800
     *
801
     * <p>{@code null} value is considered less than non-{@code null} value.
802
     * Two {@code null} references are considered equal.</p>
803
     *
804
     * <pre>
805
     * StringUtils.compare(null, null)   = 0
806
     * StringUtils.compare(null , "a")   &lt; 0
807
     * StringUtils.compare("a", null)    &gt; 0
808
     * StringUtils.compare("abc", "abc") = 0
809
     * StringUtils.compare("a", "b")     &lt; 0
810
     * StringUtils.compare("b", "a")     &gt; 0
811
     * StringUtils.compare("a", "B")     &gt; 0
812
     * StringUtils.compare("ab", "abc")  &lt; 0
813
     * </pre>
814
     *
815
     * @see #compare(String, String, boolean)
816
     * @see String#compareTo(String)
817
     * @param str1  the String to compare from
818
     * @param str2  the String to compare to
819
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal or greater than {@code str2}
820
     * @since 3.5
821
     */
822
    public static int compare(final String str1, final String str2) {
823 1 1. compare : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED
        return compare(str1, str2, true);
824
    }
825
826
    /**
827
     * Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :
828
     * <ul>
829
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
830
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
831
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
832
     * </ul>
833
     *
834
     * <p>This is a {@code null} safe version of :</p>
835
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
836
     *
837
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
838
     * Two {@code null} references are considered equal.</p>
839
     *
840
     * <pre>
841
     * StringUtils.compare(null, null, *)     = 0
842
     * StringUtils.compare(null , "a", true)  &lt; 0
843
     * StringUtils.compare(null , "a", false) &gt; 0
844
     * StringUtils.compare("a", null, true)   &gt; 0
845
     * StringUtils.compare("a", null, false)  &lt; 0
846
     * StringUtils.compare("abc", "abc", *)   = 0
847
     * StringUtils.compare("a", "b", *)       &lt; 0
848
     * StringUtils.compare("b", "a", *)       &gt; 0
849
     * StringUtils.compare("a", "B", *)       &gt; 0
850
     * StringUtils.compare("ab", "abc", *)    &lt; 0
851
     * </pre>
852
     *
853
     * @see String#compareTo(String)
854
     * @param str1  the String to compare from
855
     * @param str2  the String to compare to
856
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
857
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
858
     * @since 3.5
859
     */
860
    public static int compare(final String str1, final String str2, final boolean nullIsLess) {
861 1 1. compare : negated conditional → KILLED
        if (str1 == str2) { // NOSONARLINT this intentionally uses == to allow for both null
862
            return 0;
863
        }
864 1 1. compare : negated conditional → KILLED
        if (str1 == null) {
865 2 1. compare : negated conditional → KILLED
2. compare : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED
            return nullIsLess ? -1 : 1;
866
        }
867 1 1. compare : negated conditional → KILLED
        if (str2 == null) {
868 2 1. compare : negated conditional → KILLED
2. compare : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED
            return nullIsLess ? 1 : - 1;
869
        }
870 1 1. compare : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED
        return str1.compareTo(str2);
871
    }
872
873
    /**
874
     * Compare two Strings lexicographically, ignoring case differences,
875
     * as per {@link String#compareToIgnoreCase(String)}, returning :
876
     * <ul>
877
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
878
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
879
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
880
     * </ul>
881
     *
882
     * <p>This is a {@code null} safe version of :</p>
883
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
884
     *
885
     * <p>{@code null} value is considered less than non-{@code null} value.
886
     * Two {@code null} references are considered equal.
887
     * Comparison is case insensitive.</p>
888
     *
889
     * <pre>
890
     * StringUtils.compareIgnoreCase(null, null)   = 0
891
     * StringUtils.compareIgnoreCase(null , "a")   &lt; 0
892
     * StringUtils.compareIgnoreCase("a", null)    &gt; 0
893
     * StringUtils.compareIgnoreCase("abc", "abc") = 0
894
     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
895
     * StringUtils.compareIgnoreCase("a", "b")     &lt; 0
896
     * StringUtils.compareIgnoreCase("b", "a")     &gt; 0
897
     * StringUtils.compareIgnoreCase("a", "B")     &lt; 0
898
     * StringUtils.compareIgnoreCase("A", "b")     &lt; 0
899
     * StringUtils.compareIgnoreCase("ab", "ABC")  &lt; 0
900
     * </pre>
901
     *
902
     * @see #compareIgnoreCase(String, String, boolean)
903
     * @see String#compareToIgnoreCase(String)
904
     * @param str1  the String to compare from
905
     * @param str2  the String to compare to
906
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
907
     *          ignoring case differences.
908
     * @since 3.5
909
     */
910
    public static int compareIgnoreCase(final String str1, final String str2) {
911 1 1. compareIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED
        return compareIgnoreCase(str1, str2, true);
912
    }
913
914
    /**
915
     * Compare two Strings lexicographically, ignoring case differences,
916
     * as per {@link String#compareToIgnoreCase(String)}, returning :
917
     * <ul>
918
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
919
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
920
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
921
     * </ul>
922
     *
923
     * <p>This is a {@code null} safe version of :</p>
924
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
925
     *
926
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
927
     * Two {@code null} references are considered equal.
928
     * Comparison is case insensitive.</p>
929
     *
930
     * <pre>
931
     * StringUtils.compareIgnoreCase(null, null, *)     = 0
932
     * StringUtils.compareIgnoreCase(null , "a", true)  &lt; 0
933
     * StringUtils.compareIgnoreCase(null , "a", false) &gt; 0
934
     * StringUtils.compareIgnoreCase("a", null, true)   &gt; 0
935
     * StringUtils.compareIgnoreCase("a", null, false)  &lt; 0
936
     * StringUtils.compareIgnoreCase("abc", "abc", *)   = 0
937
     * StringUtils.compareIgnoreCase("abc", "ABC", *)   = 0
938
     * StringUtils.compareIgnoreCase("a", "b", *)       &lt; 0
939
     * StringUtils.compareIgnoreCase("b", "a", *)       &gt; 0
940
     * StringUtils.compareIgnoreCase("a", "B", *)       &lt; 0
941
     * StringUtils.compareIgnoreCase("A", "b", *)       &lt; 0
942
     * StringUtils.compareIgnoreCase("ab", "abc", *)    &lt; 0
943
     * </pre>
944
     *
945
     * @see String#compareToIgnoreCase(String)
946
     * @param str1  the String to compare from
947
     * @param str2  the String to compare to
948
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
949
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
950
     *          ignoring case differences.
951
     * @since 3.5
952
     */
953
    public static int compareIgnoreCase(final String str1, final String str2, final boolean nullIsLess) {
954 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == str2) { // NOSONARLINT this intentionally uses == to allow for both null
955
            return 0;
956
        }
957 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == null) {
958 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED
            return nullIsLess ? -1 : 1;
959
        }
960 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str2 == null) {
961 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED
            return nullIsLess ? 1 : - 1;
962
        }
963 1 1. compareIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED
        return str1.compareToIgnoreCase(str2);
964
    }
965
966
    /**
967
     * Checks if CharSequence contains a search CharSequence, handling {@code null}.
968
     * This method uses {@link String#indexOf(String)} if possible.
969
     *
970
     * <p>A {@code null} CharSequence will return {@code false}.</p>
971
     *
972
     * <pre>
973
     * StringUtils.contains(null, *)     = false
974
     * StringUtils.contains(*, null)     = false
975
     * StringUtils.contains("", "")      = true
976
     * StringUtils.contains("abc", "")   = true
977
     * StringUtils.contains("abc", "a")  = true
978
     * StringUtils.contains("abc", "z")  = false
979
     * </pre>
980
     *
981
     * @param seq  the CharSequence to check, may be null
982
     * @param searchSeq  the CharSequence to find, may be null
983
     * @return true if the CharSequence contains the search CharSequence,
984
     *  false if not or {@code null} string input
985
     * @since 2.0
986
     * @since 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)
987
     */
988
    public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {
989 2 1. contains : negated conditional → KILLED
2. contains : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
990 1 1. contains : replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED
            return false;
991
        }
992 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0) >= 0;
993
    }
994
995
    /**
996
     * Checks if CharSequence contains a search character, handling {@code null}.
997
     * This method uses {@link String#indexOf(int)} if possible.
998
     *
999
     * <p>A {@code null} or empty ("") CharSequence will return {@code false}.</p>
1000
     *
1001
     * <pre>
1002
     * StringUtils.contains(null, *)    = false
1003
     * StringUtils.contains("", *)      = false
1004
     * StringUtils.contains("abc", 'a') = true
1005
     * StringUtils.contains("abc", 'z') = false
1006
     * </pre>
1007
     *
1008
     * @param seq  the CharSequence to check, may be null
1009
     * @param searchChar  the character to find
1010
     * @return true if the CharSequence contains the search character,
1011
     *  false if not or {@code null} string input
1012
     * @since 2.0
1013
     * @since 3.0 Changed signature from contains(String, int) to contains(CharSequence, int)
1014
     */
1015
    public static boolean contains(final CharSequence seq, final int searchChar) {
1016 1 1. contains : negated conditional → KILLED
        if (isEmpty(seq)) {
1017 1 1. contains : replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED
            return false;
1018
        }
1019 3 1. contains : replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED
2. contains : changed conditional boundary → KILLED
3. contains : negated conditional → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0) >= 0;
1020
    }
1021
1022
    /**
1023
     * Checks if the CharSequence contains any character in the given
1024
     * set of characters.
1025
     *
1026
     * <p>A {@code null} CharSequence will return {@code false}.
1027
     * A {@code null} or zero length search array will return {@code false}.</p>
1028
     *
1029
     * <pre>
1030
     * StringUtils.containsAny(null, *)                  = false
1031
     * StringUtils.containsAny("", *)                    = false
1032
     * StringUtils.containsAny(*, null)                  = false
1033
     * StringUtils.containsAny(*, [])                    = false
1034
     * StringUtils.containsAny("zzabyycdxx", ['z', 'a']) = true
1035
     * StringUtils.containsAny("zzabyycdxx", ['b', 'y']) = true
1036
     * StringUtils.containsAny("zzabyycdxx", ['z', 'y']) = true
1037
     * StringUtils.containsAny("aba", ['z'])             = false
1038
     * </pre>
1039
     *
1040
     * @param cs  the CharSequence to check, may be null
1041
     * @param searchChars  the chars to search for, may be null
1042
     * @return the {@code true} if any of the chars are found,
1043
     * {@code false} if no match or null input
1044
     * @since 2.4
1045
     * @since 3.0 Changed signature from containsAny(String, char[]) to containsAny(CharSequence, char...)
1046
     */
1047
    public static boolean containsAny(final CharSequence cs, final char... searchChars) {
1048 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
1049 1 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
            return false;
1050
        }
1051
        final int csLength = cs.length();
1052
        final int searchLength = searchChars.length;
1053 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int csLast = csLength - 1;
1054 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLength - 1;
1055 2 1. containsAny : changed conditional boundary → KILLED
2. containsAny : negated conditional → KILLED
        for (int i = 0; i < csLength; i++) {
1056
            final char ch = cs.charAt(i);
1057 2 1. containsAny : changed conditional boundary → KILLED
2. containsAny : negated conditional → KILLED
            for (int j = 0; j < searchLength; j++) {
1058 1 1. containsAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
1059 1 1. containsAny : negated conditional → KILLED
                    if (!Character.isHighSurrogate(ch)) {
1060
                        // ch is in the Basic Multilingual Plane
1061 1 1. containsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED
                        return true;
1062
                    }
1063 1 1. containsAny : negated conditional → KILLED
                    if (j == searchLast) {
1064
                        // missing low surrogate, fine, like String.indexOf(String)
1065 1 1. containsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED
                        return true;
1066
                    }
1067 5 1. containsAny : Replaced integer addition with subtraction → KILLED
2. containsAny : changed conditional boundary → KILLED
3. containsAny : Replaced integer addition with subtraction → KILLED
4. containsAny : negated conditional → KILLED
5. containsAny : negated conditional → KILLED
                    if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
1068 1 1. containsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED
                        return true;
1069
                    }
1070
                }
1071
            }
1072
        }
1073 1 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
        return false;
1074
    }
1075
1076
    /**
1077
     * Checks if the CharSequence contains any character in the given set of characters.
1078
     *
1079
     * <p>
1080
     * A {@code null} CharSequence will return {@code false}. A {@code null} search CharSequence will return
1081
     * {@code false}.
1082
     * </p>
1083
     *
1084
     * <pre>
1085
     * StringUtils.containsAny(null, *)               = false
1086
     * StringUtils.containsAny("", *)                 = false
1087
     * StringUtils.containsAny(*, null)               = false
1088
     * StringUtils.containsAny(*, "")                 = false
1089
     * StringUtils.containsAny("zzabyycdxx", "za")    = true
1090
     * StringUtils.containsAny("zzabyycdxx", "by")    = true
1091
     * StringUtils.containsAny("zzabyycdxx", "zy")    = true
1092
     * StringUtils.containsAny("zzabyycdxx", "\tx")   = true
1093
     * StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
1094
     * StringUtils.containsAny("aba", "z")            = false
1095
     * </pre>
1096
     *
1097
     * @param cs
1098
     *            the CharSequence to check, may be null
1099
     * @param searchChars
1100
     *            the chars to search for, may be null
1101
     * @return the {@code true} if any of the chars are found, {@code false} if no match or null input
1102
     * @since 2.4
1103
     * @since 3.0 Changed signature from containsAny(String, String) to containsAny(CharSequence, CharSequence)
1104
     */
1105
    public static boolean containsAny(final CharSequence cs, final CharSequence searchChars) {
1106 1 1. containsAny : negated conditional → KILLED
        if (searchChars == null) {
1107 1 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
            return false;
1108
        }
1109 2 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
2. containsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED
        return containsAny(cs, CharSequenceUtils.toCharArray(searchChars));
1110
    }
1111
1112
    /**
1113
     * Checks if the CharSequence contains any of the CharSequences in the given array.
1114
     *
1115
     * <p>
1116
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero length search array will
1117
     * return {@code false}.
1118
     * </p>
1119
     *
1120
     * <pre>
1121
     * StringUtils.containsAny(null, *)            = false
1122
     * StringUtils.containsAny("", *)              = false
1123
     * StringUtils.containsAny(*, null)            = false
1124
     * StringUtils.containsAny(*, [])              = false
1125
     * StringUtils.containsAny("abcd", "ab", null) = true
1126
     * StringUtils.containsAny("abcd", "ab", "cd") = true
1127
     * StringUtils.containsAny("abc", "d", "abc")  = true
1128
     * </pre>
1129
     *
1130
     * @param cs The CharSequence to check, may be null
1131
     * @param searchCharSequences The array of CharSequences to search for, may be null. Individual CharSequences may be
1132
     *        null as well.
1133
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
1134
     * @since 3.4
1135
     */
1136
    public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
1137 2 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
2. containsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED
        return containsAny(StringUtils::contains, cs, searchCharSequences);
1138
    }
1139
1140
    /**
1141
     * Checks if the CharSequence contains any of the CharSequences in the given array.
1142
     *
1143
     * <p>
1144
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero length search array will
1145
     * return {@code false}.
1146
     * </p>
1147
     *
1148
     * @param cs The CharSequence to check, may be null
1149
     * @param searchCharSequences The array of CharSequences to search for, may be null. Individual CharSequences may be
1150
     *        null as well.
1151
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
1152
     * @since 3.12.0
1153
     */
1154
    private static boolean containsAny(final ToBooleanBiFunction<CharSequence, CharSequence> test,
1155
        final CharSequence cs, final CharSequence... searchCharSequences) {
1156 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchCharSequences)) {
1157 1 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
            return false;
1158
        }
1159
        for (final CharSequence searchCharSequence : searchCharSequences) {
1160 1 1. containsAny : negated conditional → KILLED
            if (test.applyAsBoolean(cs, searchCharSequence)) {
1161 1 1. containsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED
                return true;
1162
            }
1163
        }
1164 1 1. containsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED
        return false;
1165
    }
1166
1167
    /**
1168
     * Checks if the CharSequence contains any of the CharSequences in the given array, ignoring case.
1169
     *
1170
     * <p>
1171
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero length search array will
1172
     * return {@code false}.
1173
     * </p>
1174
     *
1175
     * <pre>
1176
     * StringUtils.containsAny(null, *)            = false
1177
     * StringUtils.containsAny("", *)              = false
1178
     * StringUtils.containsAny(*, null)            = false
1179
     * StringUtils.containsAny(*, [])              = false
1180
     * StringUtils.containsAny("abcd", "ab", null) = true
1181
     * StringUtils.containsAny("abcd", "ab", "cd") = true
1182
     * StringUtils.containsAny("abc", "d", "abc")  = true
1183
     * StringUtils.containsAny("abc", "D", "ABC")  = true
1184
     * StringUtils.containsAny("ABC", "d", "abc")  = true
1185
     * </pre>
1186
     *
1187
     * @param cs The CharSequence to check, may be null
1188
     * @param searchCharSequences The array of CharSequences to search for, may be null. Individual CharSequences may be
1189
     *        null as well.
1190
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
1191
     * @since 3.12.0
1192
     */
1193
    public static boolean containsAnyIgnoreCase(final CharSequence cs, final CharSequence... searchCharSequences) {
1194 2 1. containsAnyIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAnyIgnoreCase → KILLED
2. containsAnyIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAnyIgnoreCase → KILLED
        return containsAny(StringUtils::containsIgnoreCase, cs, searchCharSequences);
1195
    }
1196
1197
    /**
1198
     * Checks if CharSequence contains a search CharSequence irrespective of case,
1199
     * handling {@code null}. Case-insensitivity is defined as by
1200
     * {@link String#equalsIgnoreCase(String)}.
1201
     *
1202
     * <p>A {@code null} CharSequence will return {@code false}.
1203
     *
1204
     * <pre>
1205
     * StringUtils.containsIgnoreCase(null, *)    = false
1206
     * StringUtils.containsIgnoreCase(*, null)    = false
1207
     * StringUtils.containsIgnoreCase("", "")     = true
1208
     * StringUtils.containsIgnoreCase("abc", "")  = true
1209
     * StringUtils.containsIgnoreCase("abc", "a") = true
1210
     * StringUtils.containsIgnoreCase("abc", "z") = false
1211
     * StringUtils.containsIgnoreCase("abc", "A") = true
1212
     * StringUtils.containsIgnoreCase("abc", "Z") = false
1213
     * </pre>
1214
     *
1215
     * @param str  the CharSequence to check, may be null
1216
     * @param searchStr  the CharSequence to find, may be null
1217
     * @return true if the CharSequence contains the search CharSequence irrespective of
1218
     * case or false if not or {@code null} string input
1219
     * @since 3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)
1220
     */
1221
    public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1222 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1223 1 1. containsIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsIgnoreCase → KILLED
            return false;
1224
        }
1225
        final int len = searchStr.length();
1226 1 1. containsIgnoreCase : Replaced integer subtraction with addition → SURVIVED
        final int max = str.length() - len;
1227 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : changed conditional boundary → KILLED
        for (int i = 0; i <= max; i++) {
1228 1 1. containsIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, len)) {
1229 1 1. containsIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsIgnoreCase → KILLED
                return true;
1230
            }
1231
        }
1232 1 1. containsIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsIgnoreCase → KILLED
        return false;
1233
    }
1234
1235
    /**
1236
     * Checks that the CharSequence does not contain certain characters.
1237
     *
1238
     * <p>A {@code null} CharSequence will return {@code true}.
1239
     * A {@code null} invalid character array will return {@code true}.
1240
     * An empty CharSequence (length()=0) always returns true.</p>
1241
     *
1242
     * <pre>
1243
     * StringUtils.containsNone(null, *)       = true
1244
     * StringUtils.containsNone(*, null)       = true
1245
     * StringUtils.containsNone("", *)         = true
1246
     * StringUtils.containsNone("ab", '')      = true
1247
     * StringUtils.containsNone("abab", 'xyz') = true
1248
     * StringUtils.containsNone("ab1", 'xyz')  = true
1249
     * StringUtils.containsNone("abz", 'xyz')  = false
1250
     * </pre>
1251
     *
1252
     * @param cs  the CharSequence to check, may be null
1253
     * @param searchChars  an array of invalid chars, may be null
1254
     * @return true if it contains none of the invalid chars, or is null
1255
     * @since 2.0
1256
     * @since 3.0 Changed signature from containsNone(String, char[]) to containsNone(CharSequence, char...)
1257
     */
1258
    public static boolean containsNone(final CharSequence cs, final char... searchChars) {
1259 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || searchChars == null) {
1260 1 1. containsNone : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED
            return true;
1261
        }
1262
        final int csLen = cs.length();
1263 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int csLast = csLen - 1;
1264
        final int searchLen = searchChars.length;
1265 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLen - 1;
1266 2 1. containsNone : negated conditional → KILLED
2. containsNone : changed conditional boundary → KILLED
        for (int i = 0; i < csLen; i++) {
1267
            final char ch = cs.charAt(i);
1268 2 1. containsNone : negated conditional → KILLED
2. containsNone : changed conditional boundary → KILLED
            for (int j = 0; j < searchLen; j++) {
1269 1 1. containsNone : negated conditional → KILLED
                if (searchChars[j] == ch) {
1270 1 1. containsNone : negated conditional → KILLED
                    if (!Character.isHighSurrogate(ch)) {
1271
                        // ch is in the Basic Multilingual Plane
1272 1 1. containsNone : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED
                        return false;
1273
                    }
1274 1 1. containsNone : negated conditional → KILLED
                    if (j == searchLast) {
1275
                        // missing low surrogate, fine, like String.indexOf(String)
1276 1 1. containsNone : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED
                        return false;
1277
                    }
1278 5 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
3. containsNone : changed conditional boundary → KILLED
4. containsNone : Replaced integer addition with subtraction → KILLED
5. containsNone : Replaced integer addition with subtraction → KILLED
                    if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
1279 1 1. containsNone : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED
                        return false;
1280
                    }
1281
                }
1282
            }
1283
        }
1284 1 1. containsNone : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED
        return true;
1285
    }
1286
1287
    /**
1288
     * Checks that the CharSequence does not contain certain characters.
1289
     *
1290
     * <p>A {@code null} CharSequence will return {@code true}.
1291
     * A {@code null} invalid character array will return {@code true}.
1292
     * An empty String ("") always returns true.</p>
1293
     *
1294
     * <pre>
1295
     * StringUtils.containsNone(null, *)       = true
1296
     * StringUtils.containsNone(*, null)       = true
1297
     * StringUtils.containsNone("", *)         = true
1298
     * StringUtils.containsNone("ab", "")      = true
1299
     * StringUtils.containsNone("abab", "xyz") = true
1300
     * StringUtils.containsNone("ab1", "xyz")  = true
1301
     * StringUtils.containsNone("abz", "xyz")  = false
1302
     * </pre>
1303
     *
1304
     * @param cs  the CharSequence to check, may be null
1305
     * @param invalidChars  a String of invalid chars, may be null
1306
     * @return true if it contains none of the invalid chars, or is null
1307
     * @since 2.0
1308
     * @since 3.0 Changed signature from containsNone(String, String) to containsNone(CharSequence, String)
1309
     */
1310
    public static boolean containsNone(final CharSequence cs, final String invalidChars) {
1311 1 1. containsNone : negated conditional → KILLED
        if (invalidChars == null) {
1312 1 1. containsNone : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED
            return true;
1313
        }
1314 2 1. containsNone : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED
2. containsNone : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED
        return containsNone(cs, invalidChars.toCharArray());
1315
    }
1316
1317
    /**
1318
     * Checks if the CharSequence contains only certain characters.
1319
     *
1320
     * <p>A {@code null} CharSequence will return {@code false}.
1321
     * A {@code null} valid character array will return {@code false}.
1322
     * An empty CharSequence (length()=0) always returns {@code true}.</p>
1323
     *
1324
     * <pre>
1325
     * StringUtils.containsOnly(null, *)       = false
1326
     * StringUtils.containsOnly(*, null)       = false
1327
     * StringUtils.containsOnly("", *)         = true
1328
     * StringUtils.containsOnly("ab", '')      = false
1329
     * StringUtils.containsOnly("abab", 'abc') = true
1330
     * StringUtils.containsOnly("ab1", 'abc')  = false
1331
     * StringUtils.containsOnly("abz", 'abc')  = false
1332
     * </pre>
1333
     *
1334
     * @param cs  the String to check, may be null
1335
     * @param valid  an array of valid chars, may be null
1336
     * @return true if it only contains valid chars and is non-null
1337
     * @since 3.0 Changed signature from containsOnly(String, char[]) to containsOnly(CharSequence, char...)
1338
     */
1339
    public static boolean containsOnly(final CharSequence cs, final char... valid) {
1340
        // All these pre-checks are to maintain API with an older version
1341 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (valid == null || cs == null) {
1342 1 1. containsOnly : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
            return false;
1343
        }
1344 1 1. containsOnly : negated conditional → KILLED
        if (cs.length() == 0) {
1345 1 1. containsOnly : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
            return true;
1346
        }
1347 1 1. containsOnly : negated conditional → KILLED
        if (valid.length == 0) {
1348 1 1. containsOnly : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
            return false;
1349
        }
1350 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
        return indexOfAnyBut(cs, valid) == INDEX_NOT_FOUND;
1351
    }
1352
1353
    /**
1354
     * Checks if the CharSequence contains only certain characters.
1355
     *
1356
     * <p>A {@code null} CharSequence will return {@code false}.
1357
     * A {@code null} valid character String will return {@code false}.
1358
     * An empty String (length()=0) always returns {@code true}.</p>
1359
     *
1360
     * <pre>
1361
     * StringUtils.containsOnly(null, *)       = false
1362
     * StringUtils.containsOnly(*, null)       = false
1363
     * StringUtils.containsOnly("", *)         = true
1364
     * StringUtils.containsOnly("ab", "")      = false
1365
     * StringUtils.containsOnly("abab", "abc") = true
1366
     * StringUtils.containsOnly("ab1", "abc")  = false
1367
     * StringUtils.containsOnly("abz", "abc")  = false
1368
     * </pre>
1369
     *
1370
     * @param cs  the CharSequence to check, may be null
1371
     * @param validChars  a String of valid chars, may be null
1372
     * @return true if it only contains valid chars and is non-null
1373
     * @since 2.0
1374
     * @since 3.0 Changed signature from containsOnly(String, String) to containsOnly(CharSequence, String)
1375
     */
1376
    public static boolean containsOnly(final CharSequence cs, final String validChars) {
1377 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (cs == null || validChars == null) {
1378 1 1. containsOnly : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
            return false;
1379
        }
1380 2 1. containsOnly : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
2. containsOnly : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED
        return containsOnly(cs, validChars.toCharArray());
1381
    }
1382
1383
    /**
1384
     * Check whether the given CharSequence contains any whitespace characters.
1385
     *
1386
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1387
     *
1388
     * @param seq the CharSequence to check (may be {@code null})
1389
     * @return {@code true} if the CharSequence is not empty and
1390
     * contains at least 1 (breaking) whitespace character
1391
     * @since 3.0
1392
     */
1393
    // From org.springframework.util.StringUtils, under Apache License 2.0
1394
    public static boolean containsWhitespace(final CharSequence seq) {
1395 1 1. containsWhitespace : negated conditional → KILLED
        if (isEmpty(seq)) {
1396 1 1. containsWhitespace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsWhitespace → KILLED
            return false;
1397
        }
1398
        final int strLen = seq.length();
1399 2 1. containsWhitespace : negated conditional → KILLED
2. containsWhitespace : changed conditional boundary → KILLED
        for (int i = 0; i < strLen; i++) {
1400 1 1. containsWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(seq.charAt(i))) {
1401 1 1. containsWhitespace : replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsWhitespace → KILLED
                return true;
1402
            }
1403
        }
1404 1 1. containsWhitespace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsWhitespace → KILLED
        return false;
1405
    }
1406
1407
    private static void convertRemainingAccentCharacters(final StringBuilder decomposed) {
1408 2 1. convertRemainingAccentCharacters : changed conditional boundary → KILLED
2. convertRemainingAccentCharacters : negated conditional → KILLED
        for (int i = 0; i < decomposed.length(); i++) {
1409
            final char charAt = decomposed.charAt(i);
1410
            switch (charAt) {
1411
            case '\u0141':
1412 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'L');
1413
                break;
1414
            case '\u0142':
1415 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'l');
1416
                break;
1417
            // D with stroke
1418
            case '\u0110':
1419
                // LATIN CAPITAL LETTER D WITH STROKE
1420 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'D');
1421
                break;
1422
            case '\u0111':
1423
                // LATIN SMALL LETTER D WITH STROKE
1424 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'd');
1425
                break;
1426
            // I with bar
1427
            case '\u0197':
1428 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'I');
1429
                break;
1430
            case '\u0268':
1431 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'i');
1432
                break;
1433
            case '\u1D7B':
1434 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'I');
1435
                break;
1436
            case '\u1DA4':
1437 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → NO_COVERAGE
                decomposed.setCharAt(i, 'i');
1438
                break;
1439
            case '\u1DA7':
1440 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → NO_COVERAGE
                decomposed.setCharAt(i, 'I');
1441
                break;
1442
            // U with bar
1443
            case '\u0244':
1444
                // LATIN CAPITAL LETTER U BAR
1445 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'U');
1446
                break;
1447
            case '\u0289':
1448
                // LATIN SMALL LETTER U BAR
1449 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'u');
1450
                break;
1451
            case '\u1D7E':
1452
                // LATIN SMALL CAPITAL LETTER U WITH STROKE
1453 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'U');
1454
                break;
1455
            case '\u1DB6':
1456
                // MODIFIER LETTER SMALL U BAR
1457 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → NO_COVERAGE
                decomposed.setCharAt(i, 'u');
1458
                break;
1459
            // T with stroke
1460
            case '\u0166':
1461
                // LATIN CAPITAL LETTER T WITH STROKE
1462 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 'T');
1463
                break;
1464
            case '\u0167':
1465
                // LATIN SMALL LETTER T WITH STROKE
1466 1 1. convertRemainingAccentCharacters : removed call to java/lang/StringBuilder::setCharAt → KILLED
                decomposed.setCharAt(i, 't');
1467
                break;
1468
            default:
1469
                break;
1470
            }
1471
        }
1472
    }
1473
1474
    /**
1475
     * Counts how many times the char appears in the given string.
1476
     *
1477
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
1478
     *
1479
     * <pre>
1480
     * StringUtils.countMatches(null, *)     = 0
1481
     * StringUtils.countMatches("", *)       = 0
1482
     * StringUtils.countMatches("abba", 0)   = 0
1483
     * StringUtils.countMatches("abba", 'a') = 2
1484
     * StringUtils.countMatches("abba", 'b') = 2
1485
     * StringUtils.countMatches("abba", 'x') = 0
1486
     * </pre>
1487
     *
1488
     * @param str  the CharSequence to check, may be null
1489
     * @param ch  the char to count
1490
     * @return the number of occurrences, 0 if the CharSequence is {@code null}
1491
     * @since 3.4
1492
     */
1493
    public static int countMatches(final CharSequence str, final char ch) {
1494 1 1. countMatches : negated conditional → KILLED
        if (isEmpty(str)) {
1495
            return 0;
1496
        }
1497
        int count = 0;
1498
        // We could also call str.toCharArray() for faster lookups but that would generate more garbage.
1499 2 1. countMatches : negated conditional → KILLED
2. countMatches : changed conditional boundary → KILLED
        for (int i = 0; i < str.length(); i++) {
1500 1 1. countMatches : negated conditional → KILLED
            if (ch == str.charAt(i)) {
1501 1 1. countMatches : Changed increment from 1 to -1 → KILLED
                count++;
1502
            }
1503
        }
1504 1 1. countMatches : replaced int return with 0 for org/apache/commons/lang3/StringUtils::countMatches → KILLED
        return count;
1505
    }
1506
1507
    /**
1508
     * Counts how many times the substring appears in the larger string.
1509
     * Note that the code only counts non-overlapping matches.
1510
     *
1511
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
1512
     *
1513
     * <pre>
1514
     * StringUtils.countMatches(null, *)        = 0
1515
     * StringUtils.countMatches("", *)          = 0
1516
     * StringUtils.countMatches("abba", null)   = 0
1517
     * StringUtils.countMatches("abba", "")     = 0
1518
     * StringUtils.countMatches("abba", "a")    = 2
1519
     * StringUtils.countMatches("abba", "ab")   = 1
1520
     * StringUtils.countMatches("abba", "xxx")  = 0
1521
     * StringUtils.countMatches("ababa", "aba") = 1
1522
     * </pre>
1523
     *
1524
     * @param str  the CharSequence to check, may be null
1525
     * @param sub  the substring to count, may be null
1526
     * @return the number of occurrences, 0 if either CharSequence is {@code null}
1527
     * @since 3.0 Changed signature from countMatches(String, String) to countMatches(CharSequence, CharSequence)
1528
     */
1529
    public static int countMatches(final CharSequence str, final CharSequence sub) {
1530 2 1. countMatches : negated conditional → KILLED
2. countMatches : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(sub)) {
1531
            return 0;
1532
        }
1533
        int count = 0;
1534
        int idx = 0;
1535 1 1. countMatches : negated conditional → KILLED
        while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
1536 1 1. countMatches : Changed increment from 1 to -1 → KILLED
            count++;
1537 1 1. countMatches : Replaced integer addition with subtraction → TIMED_OUT
            idx += sub.length();
1538
        }
1539 1 1. countMatches : replaced int return with 0 for org/apache/commons/lang3/StringUtils::countMatches → KILLED
        return count;
1540
    }
1541
1542
    /**
1543
     * Returns either the passed in CharSequence, or if the CharSequence is
1544
     * whitespace, empty ("") or {@code null}, the value of {@code defaultStr}.
1545
     *
1546
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1547
     *
1548
     * <pre>
1549
     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
1550
     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
1551
     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
1552
     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
1553
     * StringUtils.defaultIfBlank("", null)      = null
1554
     * </pre>
1555
     * @param <T> the specific kind of CharSequence
1556
     * @param str the CharSequence to check, may be null
1557
     * @param defaultStr  the default CharSequence to return
1558
     *  if the input is whitespace, empty ("") or {@code null}, may be null
1559
     * @return the passed in CharSequence, or the default
1560
     * @see StringUtils#defaultString(String, String)
1561
     */
1562
    public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) {
1563 2 1. defaultIfBlank : replaced return value with null for org/apache/commons/lang3/StringUtils::defaultIfBlank → KILLED
2. defaultIfBlank : negated conditional → KILLED
        return isBlank(str) ? defaultStr : str;
1564
    }
1565
1566
    /**
1567
     * Returns either the passed in CharSequence, or if the CharSequence is
1568
     * empty or {@code null}, the value of {@code defaultStr}.
1569
     *
1570
     * <pre>
1571
     * StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
1572
     * StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
1573
     * StringUtils.defaultIfEmpty(" ", "NULL")   = " "
1574
     * StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
1575
     * StringUtils.defaultIfEmpty("", null)      = null
1576
     * </pre>
1577
     * @param <T> the specific kind of CharSequence
1578
     * @param str  the CharSequence to check, may be null
1579
     * @param defaultStr  the default CharSequence to return
1580
     *  if the input is empty ("") or {@code null}, may be null
1581
     * @return the passed in CharSequence, or the default
1582
     * @see StringUtils#defaultString(String, String)
1583
     */
1584
    public static <T extends CharSequence> T defaultIfEmpty(final T str, final T defaultStr) {
1585 2 1. defaultIfEmpty : negated conditional → KILLED
2. defaultIfEmpty : replaced return value with null for org/apache/commons/lang3/StringUtils::defaultIfEmpty → KILLED
        return isEmpty(str) ? defaultStr : str;
1586
    }
1587
1588
    /**
1589
     * Returns either the passed in String,
1590
     * or if the String is {@code null}, an empty String ("").
1591
     *
1592
     * <pre>
1593
     * StringUtils.defaultString(null)  = ""
1594
     * StringUtils.defaultString("")    = ""
1595
     * StringUtils.defaultString("bat") = "bat"
1596
     * </pre>
1597
     *
1598
     * @see Objects#toString(Object, String)
1599
     * @see String#valueOf(Object)
1600
     * @param str  the String to check, may be null
1601
     * @return the passed in String, or the empty String if it
1602
     *  was {@code null}
1603
     */
1604
    public static String defaultString(final String str) {
1605 1 1. defaultString : replaced return value with "" for org/apache/commons/lang3/StringUtils::defaultString → KILLED
        return Objects.toString(str, EMPTY);
1606
    }
1607
1608
    /**
1609
     * Returns either the given String, or if the String is
1610
     * {@code null}, {@code nullDefault}.
1611
     *
1612
     * <pre>
1613
     * StringUtils.defaultString(null, "NULL")  = "NULL"
1614
     * StringUtils.defaultString("", "NULL")    = ""
1615
     * StringUtils.defaultString("bat", "NULL") = "bat"
1616
     * </pre>
1617
     * <p>
1618
     * Since this is now provided by Java, instead call {@link Objects#toString(Object, String)}:
1619
     * </p>
1620
     * <pre>
1621
     * Objects.toString(null, "NULL")  = "NULL"
1622
     * Objects.toString("", "NULL")    = ""
1623
     * Objects.toString("bat", "NULL") = "bat"
1624
     * </pre>
1625
     *
1626
     * @see Objects#toString(Object, String)
1627
     * @see String#valueOf(Object)
1628
     * @param str  the String to check, may be null
1629
     * @param nullDefault  the default String to return
1630
     *  if the input is {@code null}, may be null
1631
     * @return the passed in String, or the default if it was {@code null}
1632
     * @deprecated Use {@link Objects#toString(Object, String)}
1633
     */
1634
    @Deprecated
1635
    public static String defaultString(final String str, final String nullDefault) {
1636 1 1. defaultString : replaced return value with "" for org/apache/commons/lang3/StringUtils::defaultString → KILLED
        return Objects.toString(str, nullDefault);
1637
    }
1638
1639
    /**
1640
     * Deletes all whitespaces from a String as defined by
1641
     * {@link Character#isWhitespace(char)}.
1642
     *
1643
     * <pre>
1644
     * StringUtils.deleteWhitespace(null)         = null
1645
     * StringUtils.deleteWhitespace("")           = ""
1646
     * StringUtils.deleteWhitespace("abc")        = "abc"
1647
     * StringUtils.deleteWhitespace("   ab  c  ") = "abc"
1648
     * </pre>
1649
     *
1650
     * @param str  the String to delete whitespace from, may be null
1651
     * @return the String without whitespaces, {@code null} if null String input
1652
     */
1653
    public static String deleteWhitespace(final String str) {
1654 1 1. deleteWhitespace : negated conditional → KILLED
        if (isEmpty(str)) {
1655 1 1. deleteWhitespace : replaced return value with "" for org/apache/commons/lang3/StringUtils::deleteWhitespace → KILLED
            return str;
1656
        }
1657
        final int sz = str.length();
1658
        final char[] chs = new char[sz];
1659
        int count = 0;
1660 2 1. deleteWhitespace : changed conditional boundary → KILLED
2. deleteWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
1661 1 1. deleteWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(str.charAt(i))) {
1662 1 1. deleteWhitespace : Changed increment from 1 to -1 → KILLED
                chs[count++] = str.charAt(i);
1663
            }
1664
        }
1665 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == sz) {
1666 1 1. deleteWhitespace : replaced return value with "" for org/apache/commons/lang3/StringUtils::deleteWhitespace → KILLED
            return str;
1667
        }
1668 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == 0) {
1669
            return EMPTY;
1670
        }
1671 1 1. deleteWhitespace : replaced return value with "" for org/apache/commons/lang3/StringUtils::deleteWhitespace → KILLED
        return new String(chs, 0, count);
1672
    }
1673
1674
    /**
1675
     * Compares two Strings, and returns the portion where they differ.
1676
     * More precisely, return the remainder of the second String,
1677
     * starting from where it's different from the first. This means that
1678
     * the difference between "abc" and "ab" is the empty String and not "c".
1679
     *
1680
     * <p>For example,
1681
     * {@code difference("i am a machine", "i am a robot") -> "robot"}.</p>
1682
     *
1683
     * <pre>
1684
     * StringUtils.difference(null, null)       = null
1685
     * StringUtils.difference("", "")           = ""
1686
     * StringUtils.difference("", "abc")        = "abc"
1687
     * StringUtils.difference("abc", "")        = ""
1688
     * StringUtils.difference("abc", "abc")     = ""
1689
     * StringUtils.difference("abc", "ab")      = ""
1690
     * StringUtils.difference("ab", "abxyz")    = "xyz"
1691
     * StringUtils.difference("abcde", "abxyz") = "xyz"
1692
     * StringUtils.difference("abcde", "xyz")   = "xyz"
1693
     * </pre>
1694
     *
1695
     * @param str1  the first String, may be null
1696
     * @param str2  the second String, may be null
1697
     * @return the portion of str2 where it differs from str1; returns the
1698
     * empty String if they are equal
1699
     * @see #indexOfDifference(CharSequence,CharSequence)
1700
     * @since 2.0
1701
     */
1702
    public static String difference(final String str1, final String str2) {
1703 1 1. difference : negated conditional → KILLED
        if (str1 == null) {
1704 1 1. difference : replaced return value with "" for org/apache/commons/lang3/StringUtils::difference → KILLED
            return str2;
1705
        }
1706 1 1. difference : negated conditional → KILLED
        if (str2 == null) {
1707 1 1. difference : replaced return value with "" for org/apache/commons/lang3/StringUtils::difference → KILLED
            return str1;
1708
        }
1709
        final int at = indexOfDifference(str1, str2);
1710 1 1. difference : negated conditional → KILLED
        if (at == INDEX_NOT_FOUND) {
1711
            return EMPTY;
1712
        }
1713 1 1. difference : replaced return value with "" for org/apache/commons/lang3/StringUtils::difference → KILLED
        return str2.substring(at);
1714
    }
1715
1716
    /**
1717
     * Check if a CharSequence ends with a specified suffix.
1718
     *
1719
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1720
     * references are considered to be equal. The comparison is case-sensitive.</p>
1721
     *
1722
     * <pre>
1723
     * StringUtils.endsWith(null, null)      = true
1724
     * StringUtils.endsWith(null, "def")     = false
1725
     * StringUtils.endsWith("abcdef", null)  = false
1726
     * StringUtils.endsWith("abcdef", "def") = true
1727
     * StringUtils.endsWith("ABCDEF", "def") = false
1728
     * StringUtils.endsWith("ABCDEF", "cde") = false
1729
     * StringUtils.endsWith("ABCDEF", "")    = true
1730
     * </pre>
1731
     *
1732
     * @see String#endsWith(String)
1733
     * @param str  the CharSequence to check, may be null
1734
     * @param suffix the suffix to find, may be null
1735
     * @return {@code true} if the CharSequence ends with the suffix, case-sensitive, or
1736
     *  both {@code null}
1737
     * @since 2.4
1738
     * @since 3.0 Changed signature from endsWith(String, String) to endsWith(CharSequence, CharSequence)
1739
     */
1740
    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
1741 2 1. endsWith : replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWith → KILLED
2. endsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED
        return endsWith(str, suffix, false);
1742
    }
1743
1744
    /**
1745
     * Check if a CharSequence ends with a specified suffix (optionally case insensitive).
1746
     *
1747
     * @see String#endsWith(String)
1748
     * @param str  the CharSequence to check, may be null
1749
     * @param suffix the suffix to find, may be null
1750
     * @param ignoreCase indicates whether the compare should ignore case
1751
     *  (case-insensitive) or not.
1752
     * @return {@code true} if the CharSequence starts with the prefix or
1753
     *  both {@code null}
1754
     */
1755
    private static boolean endsWith(final CharSequence str, final CharSequence suffix, final boolean ignoreCase) {
1756 2 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
        if (str == null || suffix == null) {
1757 2 1. endsWith : negated conditional → KILLED
2. endsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED
            return str == suffix;
1758
        }
1759 2 1. endsWith : negated conditional → KILLED
2. endsWith : changed conditional boundary → KILLED
        if (suffix.length() > str.length()) {
1760 1 1. endsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED
            return false;
1761
        }
1762 1 1. endsWith : Replaced integer subtraction with addition → KILLED
        final int strOffset = str.length() - suffix.length();
1763 2 1. endsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED
2. endsWith : replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWith → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, strOffset, suffix, 0, suffix.length());
1764
    }
1765
1766
    /**
1767
     * Check if a CharSequence ends with any of the provided case-sensitive suffixes.
1768
     *
1769
     * <pre>
1770
     * StringUtils.endsWithAny(null, null)                  = false
1771
     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
1772
     * StringUtils.endsWithAny("abcxyz", null)              = false
1773
     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
1774
     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
1775
     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
1776
     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ")      = true
1777
     * StringUtils.endsWithAny("abcXYZ", "def", "xyz")      = false
1778
     * </pre>
1779
     *
1780
     * @param sequence  the CharSequence to check, may be null
1781
     * @param searchStrings the case-sensitive CharSequences to find, may be empty or contain {@code null}
1782
     * @see StringUtils#endsWith(CharSequence, CharSequence)
1783
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
1784
     *   the input {@code sequence} ends in any of the provided case-sensitive {@code searchStrings}.
1785
     * @since 3.0
1786
     */
1787
    public static boolean endsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
1788 2 1. endsWithAny : negated conditional → KILLED
2. endsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
1789 1 1. endsWithAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWithAny → KILLED
            return false;
1790
        }
1791
        for (final CharSequence searchString : searchStrings) {
1792 1 1. endsWithAny : negated conditional → KILLED
            if (endsWith(sequence, searchString)) {
1793 1 1. endsWithAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWithAny → KILLED
                return true;
1794
            }
1795
        }
1796 1 1. endsWithAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWithAny → KILLED
        return false;
1797
    }
1798
1799
    /**
1800
     * Case insensitive check if a CharSequence ends with a specified suffix.
1801
     *
1802
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1803
     * references are considered to be equal. The comparison is case insensitive.</p>
1804
     *
1805
     * <pre>
1806
     * StringUtils.endsWithIgnoreCase(null, null)      = true
1807
     * StringUtils.endsWithIgnoreCase(null, "def")     = false
1808
     * StringUtils.endsWithIgnoreCase("abcdef", null)  = false
1809
     * StringUtils.endsWithIgnoreCase("abcdef", "def") = true
1810
     * StringUtils.endsWithIgnoreCase("ABCDEF", "def") = true
1811
     * StringUtils.endsWithIgnoreCase("ABCDEF", "cde") = false
1812
     * </pre>
1813
     *
1814
     * @see String#endsWith(String)
1815
     * @param str  the CharSequence to check, may be null
1816
     * @param suffix the suffix to find, may be null
1817
     * @return {@code true} if the CharSequence ends with the suffix, case-insensitive, or
1818
     *  both {@code null}
1819
     * @since 2.4
1820
     * @since 3.0 Changed signature from endsWithIgnoreCase(String, String) to endsWithIgnoreCase(CharSequence, CharSequence)
1821
     */
1822
    public static boolean endsWithIgnoreCase(final CharSequence str, final CharSequence suffix) {
1823 2 1. endsWithIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWithIgnoreCase → KILLED
2. endsWithIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWithIgnoreCase → KILLED
        return endsWith(str, suffix, true);
1824
    }
1825
1826
    /**
1827
     * Compares two CharSequences, returning {@code true} if they represent
1828
     * equal sequences of characters.
1829
     *
1830
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1831
     * references are considered to be equal. The comparison is <strong>case-sensitive</strong>.</p>
1832
     *
1833
     * <pre>
1834
     * StringUtils.equals(null, null)   = true
1835
     * StringUtils.equals(null, "abc")  = false
1836
     * StringUtils.equals("abc", null)  = false
1837
     * StringUtils.equals("abc", "abc") = true
1838
     * StringUtils.equals("abc", "ABC") = false
1839
     * </pre>
1840
     *
1841
     * @param cs1  the first CharSequence, may be {@code null}
1842
     * @param cs2  the second CharSequence, may be {@code null}
1843
     * @return {@code true} if the CharSequences are equal (case-sensitive), or both {@code null}
1844
     * @since 3.0 Changed signature from equals(String, String) to equals(CharSequence, CharSequence)
1845
     * @see Object#equals(Object)
1846
     * @see #equalsIgnoreCase(CharSequence, CharSequence)
1847
     */
1848
    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
1849 1 1. equals : negated conditional → KILLED
        if (cs1 == cs2) {
1850 1 1. equals : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equals → KILLED
            return true;
1851
        }
1852 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
1853 1 1. equals : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED
            return false;
1854
        }
1855 1 1. equals : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
1856 1 1. equals : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED
            return false;
1857
        }
1858 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 instanceof String && cs2 instanceof String) {
1859 2 1. equals : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equals → KILLED
2. equals : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED
            return cs1.equals(cs2);
1860
        }
1861
        // Step-wise comparison
1862
        final int length = cs1.length();
1863 2 1. equals : changed conditional boundary → KILLED
2. equals : negated conditional → KILLED
        for (int i = 0; i < length; i++) {
1864 1 1. equals : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
1865 1 1. equals : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED
                return false;
1866
            }
1867
        }
1868 1 1. equals : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equals → KILLED
        return true;
1869
    }
1870
1871
    /**
1872
     * Compares given {@code string} to a CharSequences vararg of {@code searchStrings},
1873
     * returning {@code true} if the {@code string} is equal to any of the {@code searchStrings}.
1874
     *
1875
     * <pre>
1876
     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
1877
     * StringUtils.equalsAny(null, null, null)    = true
1878
     * StringUtils.equalsAny(null, "abc", "def")  = false
1879
     * StringUtils.equalsAny("abc", null, "def")  = false
1880
     * StringUtils.equalsAny("abc", "abc", "def") = true
1881
     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
1882
     * </pre>
1883
     *
1884
     * @param string to compare, may be {@code null}.
1885
     * @param searchStrings a vararg of strings, may be {@code null}.
1886
     * @return {@code true} if the string is equal (case-sensitive) to any other element of {@code searchStrings};
1887
     * {@code false} if {@code searchStrings} is null or contains no matches.
1888
     * @since 3.5
1889
     */
1890
    public static boolean equalsAny(final CharSequence string, final CharSequence... searchStrings) {
1891 1 1. equalsAny : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1892
            for (final CharSequence next : searchStrings) {
1893 1 1. equalsAny : negated conditional → KILLED
                if (equals(string, next)) {
1894 1 1. equalsAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsAny → KILLED
                    return true;
1895
                }
1896
            }
1897
        }
1898 1 1. equalsAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsAny → KILLED
        return false;
1899
    }
1900
1901
    /**
1902
     * Compares given {@code string} to a CharSequences vararg of {@code searchStrings},
1903
     * returning {@code true} if the {@code string} is equal to any of the {@code searchStrings}, ignoring case.
1904
     *
1905
     * <pre>
1906
     * StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
1907
     * StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
1908
     * StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
1909
     * StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
1910
     * StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
1911
     * StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
1912
     * </pre>
1913
     *
1914
     * @param string to compare, may be {@code null}.
1915
     * @param searchStrings a vararg of strings, may be {@code null}.
1916
     * @return {@code true} if the string is equal (case-insensitive) to any other element of {@code searchStrings};
1917
     * {@code false} if {@code searchStrings} is null or contains no matches.
1918
     * @since 3.5
1919
     */
1920
    public static boolean equalsAnyIgnoreCase(final CharSequence string, final CharSequence... searchStrings) {
1921 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1922
            for (final CharSequence next : searchStrings) {
1923 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
                if (equalsIgnoreCase(string, next)) {
1924 1 1. equalsAnyIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsAnyIgnoreCase → KILLED
                    return true;
1925
                }
1926
            }
1927
        }
1928 1 1. equalsAnyIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsAnyIgnoreCase → KILLED
        return false;
1929
    }
1930
1931
    /**
1932
     * Compares two CharSequences, returning {@code true} if they represent
1933
     * equal sequences of characters, ignoring case.
1934
     *
1935
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1936
     * references are considered equal. The comparison is <strong>case insensitive</strong>.</p>
1937
     *
1938
     * <pre>
1939
     * StringUtils.equalsIgnoreCase(null, null)   = true
1940
     * StringUtils.equalsIgnoreCase(null, "abc")  = false
1941
     * StringUtils.equalsIgnoreCase("abc", null)  = false
1942
     * StringUtils.equalsIgnoreCase("abc", "abc") = true
1943
     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
1944
     * </pre>
1945
     *
1946
     * @param cs1  the first CharSequence, may be {@code null}
1947
     * @param cs2  the second CharSequence, may be {@code null}
1948
     * @return {@code true} if the CharSequences are equal (case-insensitive), or both {@code null}
1949
     * @since 3.0 Changed signature from equalsIgnoreCase(String, String) to equalsIgnoreCase(CharSequence, CharSequence)
1950
     * @see #equals(CharSequence, CharSequence)
1951
     */
1952
    public static boolean equalsIgnoreCase(final CharSequence cs1, final CharSequence cs2) {
1953 1 1. equalsIgnoreCase : negated conditional → KILLED
        if (cs1 == cs2) {
1954 1 1. equalsIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED
            return true;
1955
        }
1956 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
1957 1 1. equalsIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED
            return false;
1958
        }
1959 1 1. equalsIgnoreCase : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
1960 1 1. equalsIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED
            return false;
1961
        }
1962 2 1. equalsIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED
2. equalsIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED
        return CharSequenceUtils.regionMatches(cs1, true, 0, cs2, 0, cs1.length());
1963
    }
1964
1965
    /**
1966
     * Returns the first value in the array which is not empty (""),
1967
     * {@code null} or whitespace only.
1968
     *
1969
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1970
     *
1971
     * <p>If all values are blank or the array is {@code null}
1972
     * or empty then {@code null} is returned.</p>
1973
     *
1974
     * <pre>
1975
     * StringUtils.firstNonBlank(null, null, null)     = null
1976
     * StringUtils.firstNonBlank(null, "", " ")        = null
1977
     * StringUtils.firstNonBlank("abc")                = "abc"
1978
     * StringUtils.firstNonBlank(null, "xyz")          = "xyz"
1979
     * StringUtils.firstNonBlank(null, "", " ", "xyz") = "xyz"
1980
     * StringUtils.firstNonBlank(null, "xyz", "abc")   = "xyz"
1981
     * StringUtils.firstNonBlank()                     = null
1982
     * </pre>
1983
     *
1984
     * @param <T> the specific kind of CharSequence
1985
     * @param values  the values to test, may be {@code null} or empty
1986
     * @return the first value from {@code values} which is not blank,
1987
     *  or {@code null} if there are no non-blank values
1988
     * @since 3.8
1989
     */
1990
    @SafeVarargs
1991
    public static <T extends CharSequence> T firstNonBlank(final T... values) {
1992 1 1. firstNonBlank : negated conditional → KILLED
        if (values != null) {
1993
            for (final T val : values) {
1994 1 1. firstNonBlank : negated conditional → KILLED
                if (isNotBlank(val)) {
1995 1 1. firstNonBlank : replaced return value with null for org/apache/commons/lang3/StringUtils::firstNonBlank → KILLED
                    return val;
1996
                }
1997
            }
1998
        }
1999
        return null;
2000
    }
2001
2002
    /**
2003
     * Returns the first value in the array which is not empty.
2004
     *
2005
     * <p>If all values are empty or the array is {@code null}
2006
     * or empty then {@code null} is returned.</p>
2007
     *
2008
     * <pre>
2009
     * StringUtils.firstNonEmpty(null, null, null)   = null
2010
     * StringUtils.firstNonEmpty(null, null, "")     = null
2011
     * StringUtils.firstNonEmpty(null, "", " ")      = " "
2012
     * StringUtils.firstNonEmpty("abc")              = "abc"
2013
     * StringUtils.firstNonEmpty(null, "xyz")        = "xyz"
2014
     * StringUtils.firstNonEmpty("", "xyz")          = "xyz"
2015
     * StringUtils.firstNonEmpty(null, "xyz", "abc") = "xyz"
2016
     * StringUtils.firstNonEmpty()                   = null
2017
     * </pre>
2018
     *
2019
     * @param <T> the specific kind of CharSequence
2020
     * @param values  the values to test, may be {@code null} or empty
2021
     * @return the first value from {@code values} which is not empty,
2022
     *  or {@code null} if there are no non-empty values
2023
     * @since 3.8
2024
     */
2025
    @SafeVarargs
2026
    public static <T extends CharSequence> T firstNonEmpty(final T... values) {
2027 1 1. firstNonEmpty : negated conditional → KILLED
        if (values != null) {
2028
            for (final T val : values) {
2029 1 1. firstNonEmpty : negated conditional → KILLED
                if (isNotEmpty(val)) {
2030 1 1. firstNonEmpty : replaced return value with null for org/apache/commons/lang3/StringUtils::firstNonEmpty → KILLED
                    return val;
2031
                }
2032
            }
2033
        }
2034
        return null;
2035
    }
2036
2037
    /**
2038
     * Calls {@link String#getBytes(Charset)} in a null-safe manner.
2039
     *
2040
     * @param string input string
2041
     * @param charset The {@link Charset} to encode the {@link String}. If null, then use the default Charset.
2042
     * @return The empty byte[] if {@code string} is null, the result of {@link String#getBytes(Charset)} otherwise.
2043
     * @see String#getBytes(Charset)
2044
     * @since 3.10
2045
     */
2046
    public static byte[] getBytes(final String string, final Charset charset) {
2047 2 1. getBytes : negated conditional → KILLED
2. getBytes : replaced return value with null for org/apache/commons/lang3/StringUtils::getBytes → KILLED
        return string == null ? ArrayUtils.EMPTY_BYTE_ARRAY : string.getBytes(Charsets.toCharset(charset));
2048
    }
2049
2050
    /**
2051
     * Calls {@link String#getBytes(String)} in a null-safe manner.
2052
     *
2053
     * @param string input string
2054
     * @param charset The {@link Charset} name to encode the {@link String}. If null, then use the default Charset.
2055
     * @return The empty byte[] if {@code string} is null, the result of {@link String#getBytes(String)} otherwise.
2056
     * @throws UnsupportedEncodingException Thrown when the named charset is not supported.
2057
     * @see String#getBytes(String)
2058
     * @since 3.10
2059
     */
2060
    public static byte[] getBytes(final String string, final String charset) throws UnsupportedEncodingException {
2061 2 1. getBytes : replaced return value with null for org/apache/commons/lang3/StringUtils::getBytes → KILLED
2. getBytes : negated conditional → KILLED
        return string == null ? ArrayUtils.EMPTY_BYTE_ARRAY : string.getBytes(Charsets.toCharsetName(charset));
2062
    }
2063
2064
    /**
2065
     * Compares all Strings in an array and returns the initial sequence of
2066
     * characters that is common to all of them.
2067
     *
2068
     * <p>For example,
2069
     * {@code getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) -&gt; "i am a "}</p>
2070
     *
2071
     * <pre>
2072
     * StringUtils.getCommonPrefix(null)                             = ""
2073
     * StringUtils.getCommonPrefix(new String[] {})                  = ""
2074
     * StringUtils.getCommonPrefix(new String[] {"abc"})             = "abc"
2075
     * StringUtils.getCommonPrefix(new String[] {null, null})        = ""
2076
     * StringUtils.getCommonPrefix(new String[] {"", ""})            = ""
2077
     * StringUtils.getCommonPrefix(new String[] {"", null})          = ""
2078
     * StringUtils.getCommonPrefix(new String[] {"abc", null, null}) = ""
2079
     * StringUtils.getCommonPrefix(new String[] {null, null, "abc"}) = ""
2080
     * StringUtils.getCommonPrefix(new String[] {"", "abc"})         = ""
2081
     * StringUtils.getCommonPrefix(new String[] {"abc", ""})         = ""
2082
     * StringUtils.getCommonPrefix(new String[] {"abc", "abc"})      = "abc"
2083
     * StringUtils.getCommonPrefix(new String[] {"abc", "a"})        = "a"
2084
     * StringUtils.getCommonPrefix(new String[] {"ab", "abxyz"})     = "ab"
2085
     * StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"})  = "ab"
2086
     * StringUtils.getCommonPrefix(new String[] {"abcde", "xyz"})    = ""
2087
     * StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"})    = ""
2088
     * StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) = "i am a "
2089
     * </pre>
2090
     *
2091
     * @param strs  array of String objects, entries may be null
2092
     * @return the initial sequence of characters that are common to all Strings
2093
     * in the array; empty String if the array is null, the elements are all null
2094
     * or if there is no common prefix.
2095
     * @since 2.4
2096
     */
2097
    public static String getCommonPrefix(final String... strs) {
2098 1 1. getCommonPrefix : negated conditional → KILLED
        if (ArrayUtils.isEmpty(strs)) {
2099
            return EMPTY;
2100
        }
2101
        final int smallestIndexOfDiff = indexOfDifference(strs);
2102 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == INDEX_NOT_FOUND) {
2103
            // all strings were identical
2104 1 1. getCommonPrefix : negated conditional → KILLED
            if (strs[0] == null) {
2105
                return EMPTY;
2106
            }
2107 1 1. getCommonPrefix : replaced return value with "" for org/apache/commons/lang3/StringUtils::getCommonPrefix → KILLED
            return strs[0];
2108
        }
2109 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == 0) {
2110
            // there were no common initial characters
2111
            return EMPTY;
2112
        }
2113
        // we found a common initial character sequence
2114 1 1. getCommonPrefix : replaced return value with "" for org/apache/commons/lang3/StringUtils::getCommonPrefix → KILLED
        return strs[0].substring(0, smallestIndexOfDiff);
2115
    }
2116
2117
    /**
2118
     * Checks if a String {@code str} contains Unicode digits,
2119
     * if yes then concatenate all the digits in {@code str} and return it as a String.
2120
     *
2121
     * <p>An empty ("") String will be returned if no digits found in {@code str}.</p>
2122
     *
2123
     * <pre>
2124
     * StringUtils.getDigits(null)                 = null
2125
     * StringUtils.getDigits("")                   = ""
2126
     * StringUtils.getDigits("abc")                = ""
2127
     * StringUtils.getDigits("1000$")              = "1000"
2128
     * StringUtils.getDigits("1123~45")            = "112345"
2129
     * StringUtils.getDigits("(541) 754-3010")     = "5417543010"
2130
     * StringUtils.getDigits("\u0967\u0968\u0969") = "\u0967\u0968\u0969"
2131
     * </pre>
2132
     *
2133
     * @param str the String to extract digits from, may be null
2134
     * @return String with only digits,
2135
     *           or an empty ("") String if no digits found,
2136
     *           or {@code null} String if {@code str} is null
2137
     * @since 3.6
2138
     */
2139
    public static String getDigits(final String str) {
2140 1 1. getDigits : negated conditional → KILLED
        if (isEmpty(str)) {
2141 1 1. getDigits : replaced return value with "" for org/apache/commons/lang3/StringUtils::getDigits → KILLED
            return str;
2142
        }
2143
        final int sz = str.length();
2144
        final StringBuilder strDigits = new StringBuilder(sz);
2145 2 1. getDigits : changed conditional boundary → KILLED
2. getDigits : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
2146
            final char tempChar = str.charAt(i);
2147 1 1. getDigits : negated conditional → KILLED
            if (Character.isDigit(tempChar)) {
2148
                strDigits.append(tempChar);
2149
            }
2150
        }
2151 1 1. getDigits : replaced return value with "" for org/apache/commons/lang3/StringUtils::getDigits → KILLED
        return strDigits.toString();
2152
    }
2153
2154
    /**
2155
     * Find the Fuzzy Distance which indicates the similarity score between two Strings.
2156
     *
2157
     * <p>This string matching algorithm is similar to the algorithms of editors such as Sublime Text,
2158
     * TextMate, Atom and others. One point is given for every matched character. Subsequent
2159
     * matches yield two bonus points. A higher score indicates a higher similarity.</p>
2160
     *
2161
     * <pre>
2162
     * StringUtils.getFuzzyDistance(null, null, null)                                    = IllegalArgumentException
2163
     * StringUtils.getFuzzyDistance("", "", Locale.ENGLISH)                              = 0
2164
     * StringUtils.getFuzzyDistance("Workshop", "b", Locale.ENGLISH)                     = 0
2165
     * StringUtils.getFuzzyDistance("Room", "o", Locale.ENGLISH)                         = 1
2166
     * StringUtils.getFuzzyDistance("Workshop", "w", Locale.ENGLISH)                     = 1
2167
     * StringUtils.getFuzzyDistance("Workshop", "ws", Locale.ENGLISH)                    = 2
2168
     * StringUtils.getFuzzyDistance("Workshop", "wo", Locale.ENGLISH)                    = 4
2169
     * StringUtils.getFuzzyDistance("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
2170
     * </pre>
2171
     *
2172
     * @param term a full term that should be matched against, must not be null
2173
     * @param query the query that will be matched against a term, must not be null
2174
     * @param locale This string matching logic is case-insensitive. A locale is necessary to normalize
2175
     *  both Strings to lower case.
2176
     * @return result score
2177
     * @throws IllegalArgumentException if either String input {@code null} or Locale input {@code null}
2178
     * @since 3.4
2179
     * @deprecated As of 3.6, use Apache Commons Text
2180
     * <a href="https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/similarity/FuzzyScore.html">
2181
     * FuzzyScore</a> instead
2182
     */
2183
    @Deprecated
2184
    public static int getFuzzyDistance(final CharSequence term, final CharSequence query, final Locale locale) {
2185 2 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        if (term == null || query == null) {
2186
            throw new IllegalArgumentException("Strings must not be null");
2187
        }
2188 1 1. getFuzzyDistance : negated conditional → KILLED
        if (locale == null) {
2189
            throw new IllegalArgumentException("Locale must not be null");
2190
        }
2191
2192
        // fuzzy logic is case-insensitive. We normalize the Strings to lower
2193
        // case right from the start. Turning characters to lower case
2194
        // via Character.toLowerCase(char) is unfortunately insufficient
2195
        // as it does not accept a locale.
2196
        final String termLowerCase = term.toString().toLowerCase(locale);
2197
        final String queryLowerCase = query.toString().toLowerCase(locale);
2198
2199
        // the resulting score
2200
        int score = 0;
2201
2202
        // the position in the term which will be scanned next for potential
2203
        // query character matches
2204
        int termIndex = 0;
2205
2206
        // index of the previously matched character in the term
2207
        int previousMatchingCharacterIndex = Integer.MIN_VALUE;
2208
2209 2 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        for (int queryIndex = 0; queryIndex < queryLowerCase.length(); queryIndex++) {
2210
            final char queryChar = queryLowerCase.charAt(queryIndex);
2211
2212
            boolean termCharacterMatchFound = false;
2213 3 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
3. getFuzzyDistance : changed conditional boundary → KILLED
            for (; termIndex < termLowerCase.length() && !termCharacterMatchFound; termIndex++) {
2214
                final char termChar = termLowerCase.charAt(termIndex);
2215
2216 1 1. getFuzzyDistance : negated conditional → KILLED
                if (queryChar == termChar) {
2217
                    // simple character matches result in one point
2218 1 1. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
                    score++;
2219
2220
                    // subsequent character matches further improve
2221
                    // the score.
2222 2 1. getFuzzyDistance : Replaced integer addition with subtraction → KILLED
2. getFuzzyDistance : negated conditional → KILLED
                    if (previousMatchingCharacterIndex + 1 == termIndex) {
2223 1 1. getFuzzyDistance : Changed increment from 2 to -2 → KILLED
                        score += 2;
2224
                    }
2225
2226
                    previousMatchingCharacterIndex = termIndex;
2227
2228
                    // we can leave the nested loop. Every character in the
2229
                    // query can match at most one character in the term.
2230
                    termCharacterMatchFound = true;
2231
                }
2232
            }
2233
        }
2234
2235 1 1. getFuzzyDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getFuzzyDistance → KILLED
        return score;
2236
    }
2237
2238
    /**
2239
     * Returns either the passed in CharSequence, or if the CharSequence is
2240
     * whitespace, empty ("") or {@code null}, the value supplied by {@code defaultStrSupplier}.
2241
     *
2242
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
2243
     *
2244
     * <p>Caller responsible for thread-safety and exception handling of default value supplier</p>
2245
     *
2246
     * <pre>
2247
     * {@code
2248
     * StringUtils.getIfBlank(null, () -> "NULL")   = "NULL"
2249
     * StringUtils.getIfBlank("", () -> "NULL")     = "NULL"
2250
     * StringUtils.getIfBlank(" ", () -> "NULL")    = "NULL"
2251
     * StringUtils.getIfBlank("bat", () -> "NULL")  = "bat"
2252
     * StringUtils.getIfBlank("", () -> null)       = null
2253
     * StringUtils.getIfBlank("", null)             = null
2254
     * }</pre>
2255
     * @param <T> the specific kind of CharSequence
2256
     * @param str the CharSequence to check, may be null
2257
     * @param defaultSupplier the supplier of default CharSequence to return
2258
     *  if the input is whitespace, empty ("") or {@code null}, may be null
2259
     * @return the passed in CharSequence, or the default
2260
     * @see StringUtils#defaultString(String, String)
2261
     * @since 3.10
2262
     */
2263
    public static <T extends CharSequence> T getIfBlank(final T str, final Supplier<T> defaultSupplier) {
2264 2 1. getIfBlank : negated conditional → KILLED
2. getIfBlank : replaced return value with null for org/apache/commons/lang3/StringUtils::getIfBlank → KILLED
        return isBlank(str) ? Suppliers.get(defaultSupplier) : str;
2265
    }
2266
2267
    /**
2268
     * Returns either the passed in CharSequence, or if the CharSequence is
2269
     * empty or {@code null}, the value supplied by {@code defaultStrSupplier}.
2270
     *
2271
     * <p>Caller responsible for thread-safety and exception handling of default value supplier</p>
2272
     *
2273
     * <pre>
2274
     * {@code
2275
     * StringUtils.getIfEmpty(null, () -> "NULL")    = "NULL"
2276
     * StringUtils.getIfEmpty("", () -> "NULL")      = "NULL"
2277
     * StringUtils.getIfEmpty(" ", () -> "NULL")     = " "
2278
     * StringUtils.getIfEmpty("bat", () -> "NULL")   = "bat"
2279
     * StringUtils.getIfEmpty("", () -> null)        = null
2280
     * StringUtils.getIfEmpty("", null)              = null
2281
     * }
2282
     * </pre>
2283
     * @param <T> the specific kind of CharSequence
2284
     * @param str  the CharSequence to check, may be null
2285
     * @param defaultSupplier  the supplier of default CharSequence to return
2286
     *  if the input is empty ("") or {@code null}, may be null
2287
     * @return the passed in CharSequence, or the default
2288
     * @see StringUtils#defaultString(String, String)
2289
     * @since 3.10
2290
     */
2291
    public static <T extends CharSequence> T getIfEmpty(final T str, final Supplier<T> defaultSupplier) {
2292 2 1. getIfEmpty : replaced return value with null for org/apache/commons/lang3/StringUtils::getIfEmpty → KILLED
2. getIfEmpty : negated conditional → KILLED
        return isEmpty(str) ? Suppliers.get(defaultSupplier) : str;
2293
    }
2294
2295
    /**
2296
     * Find the Jaro Winkler Distance which indicates the similarity score between two Strings.
2297
     *
2298
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters.
2299
     * Winkler increased this measure for matching initial characters.</p>
2300
     *
2301
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
2302
     * from <a href="https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
2303
     *
2304
     * <pre>
2305
     * StringUtils.getJaroWinklerDistance(null, null)          = IllegalArgumentException
2306
     * StringUtils.getJaroWinklerDistance("", "")              = 0.0
2307
     * StringUtils.getJaroWinklerDistance("", "a")             = 0.0
2308
     * StringUtils.getJaroWinklerDistance("aaapppp", "")       = 0.0
2309
     * StringUtils.getJaroWinklerDistance("frog", "fog")       = 0.93
2310
     * StringUtils.getJaroWinklerDistance("fly", "ant")        = 0.0
2311
     * StringUtils.getJaroWinklerDistance("elephant", "hippo") = 0.44
2312
     * StringUtils.getJaroWinklerDistance("hippo", "elephant") = 0.44
2313
     * StringUtils.getJaroWinklerDistance("hippo", "zzzzzzzz") = 0.0
2314
     * StringUtils.getJaroWinklerDistance("hello", "hallo")    = 0.88
2315
     * StringUtils.getJaroWinklerDistance("ABC Corporation", "ABC Corp") = 0.93
2316
     * StringUtils.getJaroWinklerDistance("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
2317
     * StringUtils.getJaroWinklerDistance("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
2318
     * StringUtils.getJaroWinklerDistance("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
2319
     * </pre>
2320
     *
2321
     * @param first the first String, must not be null
2322
     * @param second the second String, must not be null
2323
     * @return result distance
2324
     * @throws IllegalArgumentException if either String input {@code null}
2325
     * @since 3.3
2326
     * @deprecated As of 3.6, use Apache Commons Text
2327
     * <a href="https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/similarity/JaroWinklerDistance.html">
2328
     * JaroWinklerDistance</a> instead
2329
     */
2330
    @Deprecated
2331
    public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
2332
        final double DEFAULT_SCALING_FACTOR = 0.1;
2333
2334 2 1. getJaroWinklerDistance : negated conditional → KILLED
2. getJaroWinklerDistance : negated conditional → KILLED
        if (first == null || second == null) {
2335
            throw new IllegalArgumentException("Strings must not be null");
2336
        }
2337
2338
        final int[] mtp = matches(first, second);
2339
        final double m = mtp[0];
2340 1 1. getJaroWinklerDistance : negated conditional → KILLED
        if (m == 0) {
2341
            return 0D;
2342
        }
2343 7 1. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
4. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
5. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
6. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
7. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
        final double j = (m / first.length() + m / second.length() + (m - mtp[1]) / m) / 3;
2344 7 1. getJaroWinklerDistance : changed conditional boundary → SURVIVED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
2345 3 1. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : replaced double return with 0.0d for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
2346
    }
2347
2348
    /**
2349
     * Find the Levenshtein distance between two Strings.
2350
     *
2351
     * <p>This is the number of changes needed to change one String into
2352
     * another, where each change is a single character modification (deletion,
2353
     * insertion or substitution).</p>
2354
     *
2355
     * <p>The implementation uses a single-dimensional array of length s.length() + 1. See
2356
     * <a href="https://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html">
2357
     * https://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html</a> for details.</p>
2358
     *
2359
     * <pre>
2360
     * StringUtils.getLevenshteinDistance(null, *)             = IllegalArgumentException
2361
     * StringUtils.getLevenshteinDistance(*, null)             = IllegalArgumentException
2362
     * StringUtils.getLevenshteinDistance("", "")              = 0
2363
     * StringUtils.getLevenshteinDistance("", "a")             = 1
2364
     * StringUtils.getLevenshteinDistance("aaapppp", "")       = 7
2365
     * StringUtils.getLevenshteinDistance("frog", "fog")       = 1
2366
     * StringUtils.getLevenshteinDistance("fly", "ant")        = 3
2367
     * StringUtils.getLevenshteinDistance("elephant", "hippo") = 7
2368
     * StringUtils.getLevenshteinDistance("hippo", "elephant") = 7
2369
     * StringUtils.getLevenshteinDistance("hippo", "zzzzzzzz") = 8
2370
     * StringUtils.getLevenshteinDistance("hello", "hallo")    = 1
2371
     * </pre>
2372
     *
2373
     * @param s  the first String, must not be null
2374
     * @param t  the second String, must not be null
2375
     * @return result distance
2376
     * @throws IllegalArgumentException if either String input {@code null}
2377
     * @since 3.0 Changed signature from getLevenshteinDistance(String, String) to
2378
     * getLevenshteinDistance(CharSequence, CharSequence)
2379
     * @deprecated As of 3.6, use Apache Commons Text
2380
     * <a href="https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/similarity/LevenshteinDistance.html">
2381
     * LevenshteinDistance</a> instead
2382
     */
2383
    @Deprecated
2384
    public static int getLevenshteinDistance(CharSequence s, CharSequence t) {
2385 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
2386
            throw new IllegalArgumentException("Strings must not be null");
2387
        }
2388
2389
        int n = s.length();
2390
        int m = t.length();
2391
2392 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
2393 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
            return m;
2394
        }
2395 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (m == 0) {
2396 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
            return n;
2397
        }
2398
2399 2 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → SURVIVED
        if (n > m) {
2400
            // swap the input strings to consume less memory
2401
            final CharSequence tmp = s;
2402
            s = t;
2403
            t = tmp;
2404
            n = m;
2405
            m = t.length();
2406
        }
2407
2408 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int[] p = new int[n + 1];
2409
        // indexes into strings s and t
2410
        int i; // iterates through s
2411
        int j; // iterates through t
2412
        int upperleft;
2413
        int upper;
2414
2415
        char jOfT; // jth character of t
2416
        int cost;
2417
2418 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        for (i = 0; i <= n; i++) {
2419
            p[i] = i;
2420
        }
2421
2422 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        for (j = 1; j <= m; j++) {
2423
            upperleft = p[0];
2424 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            jOfT = t.charAt(j - 1);
2425
            p[0] = j;
2426
2427 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            for (i = 1; i <= n; i++) {
2428
                upper = p[i];
2429 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                cost = s.charAt(i - 1) == jOfT ? 0 : 1;
2430
                // minimum of cell to the left+1, to the top+1, diagonally left and up +cost
2431 4 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upperleft + cost);
2432
                upperleft = upper;
2433
            }
2434
        }
2435
2436 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
        return p[n];
2437
    }
2438
2439
    /**
2440
     * Find the Levenshtein distance between two Strings if it's less than or equal to a given
2441
     * threshold.
2442
     *
2443
     * <p>This is the number of changes needed to change one String into
2444
     * another, where each change is a single character modification (deletion,
2445
     * insertion or substitution).</p>
2446
     *
2447
     * <p>This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield
2448
     * and Chas Emerick's implementation of the Levenshtein distance algorithm from
2449
     * <a href="https://web.archive.org/web/20120212021906/http%3A//www.merriampark.com/ld.htm">http://www.merriampark.com/ld.htm</a></p>
2450
     *
2451
     * <pre>
2452
     * StringUtils.getLevenshteinDistance(null, *, *)             = IllegalArgumentException
2453
     * StringUtils.getLevenshteinDistance(*, null, *)             = IllegalArgumentException
2454
     * StringUtils.getLevenshteinDistance(*, *, -1)               = IllegalArgumentException
2455
     * StringUtils.getLevenshteinDistance("", "", 0)              = 0
2456
     * StringUtils.getLevenshteinDistance("aaapppp", "", 8)       = 7
2457
     * StringUtils.getLevenshteinDistance("aaapppp", "", 7)       = 7
2458
     * StringUtils.getLevenshteinDistance("aaapppp", "", 6))      = -1
2459
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 7) = 7
2460
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 6) = -1
2461
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 7) = 7
2462
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 6) = -1
2463
     * </pre>
2464
     *
2465
     * @param s  the first String, must not be null
2466
     * @param t  the second String, must not be null
2467
     * @param threshold the target threshold, must not be negative
2468
     * @return result distance, or {@code -1} if the distance would be greater than the threshold
2469
     * @throws IllegalArgumentException if either String input {@code null} or negative threshold
2470
     * @deprecated As of 3.6, use Apache Commons Text
2471
     * <a href="https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/similarity/LevenshteinDistance.html">
2472
     * LevenshteinDistance</a> instead
2473
     */
2474
    @Deprecated
2475
    public static int getLevenshteinDistance(CharSequence s, CharSequence t, final int threshold) {
2476 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
2477
            throw new IllegalArgumentException("Strings must not be null");
2478
        }
2479 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : changed conditional boundary → KILLED
        if (threshold < 0) {
2480
            throw new IllegalArgumentException("Threshold must not be negative");
2481
        }
2482
2483
        /*
2484
        This implementation only computes the distance if it's less than or equal to the
2485
        threshold value, returning -1 if it's greater.  The advantage is performance: unbounded
2486
        distance is O(nm), but a bound of k allows us to reduce it to O(km) time by only
2487
        computing a diagonal stripe of width 2k + 1 of the cost table.
2488
        It is also possible to use this to compute the unbounded Levenshtein distance by starting
2489
        the threshold at 1 and doubling each time until the distance is found; this is O(dm), where
2490
        d is the distance.
2491
2492
        One subtlety comes from needing to ignore entries on the border of our stripe
2493
        eg.
2494
        p[] = |#|#|#|*
2495
        d[] =  *|#|#|#|
2496
        We must ignore the entry to the left of the leftmost member
2497
        We must ignore the entry above the rightmost member
2498
2499
        Another subtlety comes from our stripe running off the matrix if the strings aren't
2500
        of the same size.  Since string s is always swapped to be the shorter of the two,
2501
        the stripe will always run off to the upper right instead of the lower left of the matrix.
2502
2503
        As a concrete example, suppose s is of length 5, t is of length 7, and our threshold is 1.
2504
        In this case we're going to walk a stripe of length 3.  The matrix would look like so:
2505
2506
           1 2 3 4 5
2507
        1 |#|#| | | |
2508
        2 |#|#|#| | |
2509
        3 | |#|#|#| |
2510
        4 | | |#|#|#|
2511
        5 | | | |#|#|
2512
        6 | | | | |#|
2513
        7 | | | | | |
2514
2515
        Note how the stripe leads off the table as there is no possible way to turn a string of length 5
2516
        into one of length 7 in edit distance of 1.
2517
2518
        Additionally, this implementation decreases memory usage by using two
2519
        single-dimensional arrays and swapping them back and forth instead of allocating
2520
        an entire n by m matrix.  This requires a few minor changes, such as immediately returning
2521
        when it's detected that the stripe has run off the matrix and initially filling the arrays with
2522
        large values so that entries we don't compute are ignored.
2523
2524
        See Algorithms on Strings, Trees and Sequences by Dan Gusfield for some discussion.
2525
         */
2526
2527
        int n = s.length(); // length of s
2528
        int m = t.length(); // length of t
2529
2530
        // if one string is empty, the edit distance is necessarily the length of the other
2531 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
2532 3 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → SURVIVED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : changed conditional boundary → KILLED
            return m <= threshold ? m : -1;
2533
        }
2534 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (m == 0) {
2535 3 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
            return n <= threshold ? n : -1;
2536
        }
2537 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        if (Math.abs(n - m) > threshold) {
2538
            // no need to calculate the distance if the length difference is greater than the threshold
2539 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
            return -1;
2540
        }
2541
2542 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
2543
            // swap the two strings to consume less memory
2544
            final CharSequence tmp = s;
2545
            s = t;
2546
            t = tmp;
2547
            n = m;
2548
            m = t.length();
2549
        }
2550
2551 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int[] p = new int[n + 1]; // 'previous' cost array, horizontally
2552 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int[] d = new int[n + 1]; // cost array, horizontally
2553
        int[] tmp; // placeholder to assist in swapping p and d
2554
2555
        // fill in starting table values
2556 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int boundary = Math.min(n, threshold) + 1;
2557 2 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → KILLED
        for (int i = 0; i < boundary; i++) {
2558
            p[i] = i;
2559
        }
2560
        // these fills ensure that the value above the rightmost entry of our
2561
        // stripe will be ignored in following loop iterations
2562 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE);
2563 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(d, Integer.MAX_VALUE);
2564
2565
        // iterates through t
2566 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : changed conditional boundary → KILLED
        for (int j = 1; j <= m; j++) {
2567 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final char jOfT = t.charAt(j - 1); // jth character of t
2568
            d[0] = j;
2569
2570
            // compute stripe indices, constrain to array size
2571 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final int min = Math.max(1, j - threshold);
2572 4 1. getLevenshteinDistance : Replaced integer subtraction with addition → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → SURVIVED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : negated conditional → KILLED
            final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold);
2573
2574
            // the stripe may lead off of the table if s and t are of different sizes
2575 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > max) {
2576 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → NO_COVERAGE
                return -1;
2577
            }
2578
2579
            // ignore entry left of leftmost
2580 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > 1) {
2581 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                d[min - 1] = Integer.MAX_VALUE;
2582
            }
2583
2584
            // iterates through [min, max] in s
2585 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : changed conditional boundary → KILLED
            for (int i = min; i <= max; i++) {
2586 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                if (s.charAt(i - 1) == jOfT) {
2587
                    // diagonally left and up
2588 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = p[i - 1];
2589
                } else {
2590
                    // 1 + minimum of cell to the left, to the top, diagonally left and up
2591 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
3. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]);
2592
                }
2593
            }
2594
2595
            // copy current distance counts to 'previous row' distance counts
2596
            tmp = p;
2597
            p = d;
2598
            d = tmp;
2599
        }
2600
2601
        // if p[n] is greater than the threshold, there's no guarantee on it being the correct
2602
        // distance
2603 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (p[n] <= threshold) {
2604 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
            return p[n];
2605
        }
2606 1 1. getLevenshteinDistance : replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED
        return -1;
2607
    }
2608
2609
    /**
2610
     * Finds the first index within a CharSequence, handling {@code null}.
2611
     * This method uses {@link String#indexOf(String, int)} if possible.
2612
     *
2613
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
2614
     *
2615
     * <pre>
2616
     * StringUtils.indexOf(null, *)          = -1
2617
     * StringUtils.indexOf(*, null)          = -1
2618
     * StringUtils.indexOf("", "")           = 0
2619
     * StringUtils.indexOf("", *)            = -1 (except when * = "")
2620
     * StringUtils.indexOf("aabaabaa", "a")  = 0
2621
     * StringUtils.indexOf("aabaabaa", "b")  = 2
2622
     * StringUtils.indexOf("aabaabaa", "ab") = 1
2623
     * StringUtils.indexOf("aabaabaa", "")   = 0
2624
     * </pre>
2625
     *
2626
     * @param seq  the CharSequence to check, may be null
2627
     * @param searchSeq  the CharSequence to find, may be null
2628
     * @return the first index of the search CharSequence,
2629
     *  -1 if no match or {@code null} string input
2630
     * @since 2.0
2631
     * @since 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)
2632
     */
2633
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
2634 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
2635 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
            return INDEX_NOT_FOUND;
2636
        }
2637 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0);
2638
    }
2639
2640
    /**
2641
     * Finds the first index within a CharSequence, handling {@code null}.
2642
     * This method uses {@link String#indexOf(String, int)} if possible.
2643
     *
2644
     * <p>A {@code null} CharSequence will return {@code -1}.
2645
     * A negative start position is treated as zero.
2646
     * An empty ("") search CharSequence always matches.
2647
     * A start position greater than the string length only matches
2648
     * an empty search CharSequence.</p>
2649
     *
2650
     * <pre>
2651
     * StringUtils.indexOf(null, *, *)          = -1
2652
     * StringUtils.indexOf(*, null, *)          = -1
2653
     * StringUtils.indexOf("", "", 0)           = 0
2654
     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
2655
     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
2656
     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
2657
     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
2658
     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
2659
     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
2660
     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
2661
     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
2662
     * StringUtils.indexOf("abc", "", 9)        = 3
2663
     * </pre>
2664
     *
2665
     * @param seq  the CharSequence to check, may be null
2666
     * @param searchSeq  the CharSequence to find, may be null
2667
     * @param startPos  the start position, negative treated as zero
2668
     * @return the first index of the search CharSequence (always &ge; startPos),
2669
     *  -1 if no match or {@code null} string input
2670
     * @since 2.0
2671
     * @since 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)
2672
     */
2673
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
2674 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
2675 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
            return INDEX_NOT_FOUND;
2676
        }
2677 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, startPos);
2678
    }
2679
2680
    /**
2681
     * Returns the index within {@code seq} of the first occurrence of
2682
     * the specified character. If a character with value
2683
     * {@code searchChar} occurs in the character sequence represented by
2684
     * {@code seq} {@link CharSequence} object, then the index (in Unicode
2685
     * code units) of the first such occurrence is returned. For
2686
     * values of {@code searchChar} in the range from 0 to 0xFFFF
2687
     * (inclusive), this is the smallest value <i>k</i> such that:
2688
     * <blockquote><pre>
2689
     * this.charAt(<i>k</i>) == searchChar
2690
     * </pre></blockquote>
2691
     * is true. For other values of {@code searchChar}, it is the
2692
     * smallest value <i>k</i> such that:
2693
     * <blockquote><pre>
2694
     * this.codePointAt(<i>k</i>) == searchChar
2695
     * </pre></blockquote>
2696
     * is true. In either case, if no such character occurs in {@code seq},
2697
     * then {@code INDEX_NOT_FOUND (-1)} is returned.
2698
     *
2699
     * <p>Furthermore, a {@code null} or empty ("") CharSequence will
2700
     * return {@code INDEX_NOT_FOUND (-1)}.</p>
2701
     *
2702
     * <pre>
2703
     * StringUtils.indexOf(null, *)         = -1
2704
     * StringUtils.indexOf("", *)           = -1
2705
     * StringUtils.indexOf("aabaabaa", 'a') = 0
2706
     * StringUtils.indexOf("aabaabaa", 'b') = 2
2707
     * </pre>
2708
     *
2709
     * @param seq  the CharSequence to check, may be null
2710
     * @param searchChar  the character to find
2711
     * @return the first index of the search character,
2712
     *  -1 if no match or {@code null} string input
2713
     * @since 2.0
2714
     * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
2715
     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@link String}
2716
     */
2717
    public static int indexOf(final CharSequence seq, final int searchChar) {
2718 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
2719 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
            return INDEX_NOT_FOUND;
2720
        }
2721 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0);
2722
    }
2723
2724
    /**
2725
     * Returns the index within {@code seq} of the first occurrence of the
2726
     * specified character, starting the search at the specified index.
2727
     * <p>
2728
     * If a character with value {@code searchChar} occurs in the
2729
     * character sequence represented by the {@code seq} {@link CharSequence}
2730
     * object at an index no smaller than {@code startPos}, then
2731
     * the index of the first such occurrence is returned. For values
2732
     * of {@code searchChar} in the range from 0 to 0xFFFF (inclusive),
2733
     * this is the smallest value <i>k</i> such that:
2734
     * <blockquote><pre>
2735
     * (this.charAt(<i>k</i>) == searchChar) &amp;&amp; (<i>k</i> &gt;= startPos)
2736
     * </pre></blockquote>
2737
     * is true. For other values of {@code searchChar}, it is the
2738
     * smallest value <i>k</i> such that:
2739
     * <blockquote><pre>
2740
     * (this.codePointAt(<i>k</i>) == searchChar) &amp;&amp; (<i>k</i> &gt;= startPos)
2741
     * </pre></blockquote>
2742
     * is true. In either case, if no such character occurs in {@code seq}
2743
     * at or after position {@code startPos}, then
2744
     * {@code -1} is returned.
2745
     *
2746
     * <p>
2747
     * There is no restriction on the value of {@code startPos}. If it
2748
     * is negative, it has the same effect as if it were zero: this entire
2749
     * string may be searched. If it is greater than the length of this
2750
     * string, it has the same effect as if it were equal to the length of
2751
     * this string: {@code (INDEX_NOT_FOUND) -1} is returned. Furthermore, a
2752
     * {@code null} or empty ("") CharSequence will
2753
     * return {@code (INDEX_NOT_FOUND) -1}.
2754
     *
2755
     * <p>All indices are specified in {@code char} values
2756
     * (Unicode code units).
2757
     *
2758
     * <pre>
2759
     * StringUtils.indexOf(null, *, *)          = -1
2760
     * StringUtils.indexOf("", *, *)            = -1
2761
     * StringUtils.indexOf("aabaabaa", 'b', 0)  = 2
2762
     * StringUtils.indexOf("aabaabaa", 'b', 3)  = 5
2763
     * StringUtils.indexOf("aabaabaa", 'b', 9)  = -1
2764
     * StringUtils.indexOf("aabaabaa", 'b', -1) = 2
2765
     * </pre>
2766
     *
2767
     * @param seq  the CharSequence to check, may be null
2768
     * @param searchChar  the character to find
2769
     * @param startPos  the start position, negative treated as zero
2770
     * @return the first index of the search character (always &ge; startPos),
2771
     *  -1 if no match or {@code null} string input
2772
     * @since 2.0
2773
     * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
2774
     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@link String}
2775
     */
2776
    public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
2777 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
2778 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
            return INDEX_NOT_FOUND;
2779
        }
2780 1 1. indexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, startPos);
2781
    }
2782
2783
    /**
2784
     * Search a CharSequence to find the first index of any
2785
     * character in the given set of characters.
2786
     *
2787
     * <p>A {@code null} String will return {@code -1}.
2788
     * A {@code null} or zero length search array will return {@code -1}.</p>
2789
     *
2790
     * <pre>
2791
     * StringUtils.indexOfAny(null, *)                  = -1
2792
     * StringUtils.indexOfAny("", *)                    = -1
2793
     * StringUtils.indexOfAny(*, null)                  = -1
2794
     * StringUtils.indexOfAny(*, [])                    = -1
2795
     * StringUtils.indexOfAny("zzabyycdxx", ['z', 'a']) = 0
2796
     * StringUtils.indexOfAny("zzabyycdxx", ['b', 'y']) = 3
2797
     * StringUtils.indexOfAny("aba", ['z'])             = -1
2798
     * </pre>
2799
     *
2800
     * @param cs  the CharSequence to check, may be null
2801
     * @param searchChars  the chars to search for, may be null
2802
     * @return the index of any of the chars, -1 if no match or null input
2803
     * @since 2.0
2804
     * @since 3.0 Changed signature from indexOfAny(String, char[]) to indexOfAny(CharSequence, char...)
2805
     */
2806
    public static int indexOfAny(final CharSequence cs, final char... searchChars) {
2807 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2808 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
            return INDEX_NOT_FOUND;
2809
        }
2810
        final int csLen = cs.length();
2811 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2812
        final int searchLen = searchChars.length;
2813 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2814 2 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2815
            final char ch = cs.charAt(i);
2816 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : changed conditional boundary → KILLED
            for (int j = 0; j < searchLen; j++) {
2817 1 1. indexOfAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2818 5 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : changed conditional boundary → SURVIVED
3. indexOfAny : negated conditional → KILLED
4. indexOfAny : negated conditional → KILLED
5. indexOfAny : negated conditional → KILLED
                    if (i >= csLast || j >= searchLast || !Character.isHighSurrogate(ch)) {
2819 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
                        return i;
2820
                    }
2821
                    // ch is a supplementary character
2822 3 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : Replaced integer addition with subtraction → KILLED
3. indexOfAny : Replaced integer addition with subtraction → KILLED
                    if (searchChars[j + 1] == cs.charAt(i + 1)) {
2823 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
                        return i;
2824
                    }
2825
                }
2826
            }
2827
        }
2828 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
        return INDEX_NOT_FOUND;
2829
    }
2830
2831
    /**
2832
     * Find the first index of any of a set of potential substrings.
2833
     *
2834
     * <p>A {@code null} CharSequence will return {@code -1}.
2835
     * A {@code null} or zero length search array will return {@code -1}.
2836
     * A {@code null} search array entry will be ignored, but a search
2837
     * array containing "" will return {@code 0} if {@code str} is not
2838
     * null. This method uses {@link String#indexOf(String)} if possible.</p>
2839
     *
2840
     * <pre>
2841
     * StringUtils.indexOfAny(null, *)                      = -1
2842
     * StringUtils.indexOfAny(*, null)                      = -1
2843
     * StringUtils.indexOfAny(*, [])                        = -1
2844
     * StringUtils.indexOfAny("zzabyycdxx", ["ab", "cd"])   = 2
2845
     * StringUtils.indexOfAny("zzabyycdxx", ["cd", "ab"])   = 2
2846
     * StringUtils.indexOfAny("zzabyycdxx", ["mn", "op"])   = -1
2847
     * StringUtils.indexOfAny("zzabyycdxx", ["zab", "aby"]) = 1
2848
     * StringUtils.indexOfAny("zzabyycdxx", [""])           = 0
2849
     * StringUtils.indexOfAny("", [""])                     = 0
2850
     * StringUtils.indexOfAny("", ["a"])                    = -1
2851
     * </pre>
2852
     *
2853
     * @param str  the CharSequence to check, may be null
2854
     * @param searchStrs  the CharSequences to search for, may be null
2855
     * @return the first index of any of the searchStrs in str, -1 if no match
2856
     * @since 3.0 Changed signature from indexOfAny(String, String[]) to indexOfAny(CharSequence, CharSequence...)
2857
     */
2858
    public static int indexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2859 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2860 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
            return INDEX_NOT_FOUND;
2861
        }
2862
2863
        // String's can't have a MAX_VALUEth index.
2864
        int ret = Integer.MAX_VALUE;
2865
2866
        int tmp;
2867
        for (final CharSequence search : searchStrs) {
2868 1 1. indexOfAny : negated conditional → KILLED
            if (search == null) {
2869
                continue;
2870
            }
2871
            tmp = CharSequenceUtils.indexOf(str, search, 0);
2872 1 1. indexOfAny : negated conditional → KILLED
            if (tmp == INDEX_NOT_FOUND) {
2873
                continue;
2874
            }
2875
2876 2 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : negated conditional → KILLED
            if (tmp < ret) {
2877
                ret = tmp;
2878
            }
2879
        }
2880
2881 2 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
2. indexOfAny : negated conditional → KILLED
        return ret == Integer.MAX_VALUE ? INDEX_NOT_FOUND : ret;
2882
    }
2883
2884
    /**
2885
     * Search a CharSequence to find the first index of any
2886
     * character in the given set of characters.
2887
     *
2888
     * <p>A {@code null} String will return {@code -1}.
2889
     * A {@code null} search string will return {@code -1}.</p>
2890
     *
2891
     * <pre>
2892
     * StringUtils.indexOfAny(null, *)            = -1
2893
     * StringUtils.indexOfAny("", *)              = -1
2894
     * StringUtils.indexOfAny(*, null)            = -1
2895
     * StringUtils.indexOfAny(*, "")              = -1
2896
     * StringUtils.indexOfAny("zzabyycdxx", "za") = 0
2897
     * StringUtils.indexOfAny("zzabyycdxx", "by") = 3
2898
     * StringUtils.indexOfAny("aba", "z")         = -1
2899
     * </pre>
2900
     *
2901
     * @param cs  the CharSequence to check, may be null
2902
     * @param searchChars  the chars to search for, may be null
2903
     * @return the index of any of the chars, -1 if no match or null input
2904
     * @since 2.0
2905
     * @since 3.0 Changed signature from indexOfAny(String, String) to indexOfAny(CharSequence, String)
2906
     */
2907
    public static int indexOfAny(final CharSequence cs, final String searchChars) {
2908 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || isEmpty(searchChars)) {
2909 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
            return INDEX_NOT_FOUND;
2910
        }
2911 1 1. indexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED
        return indexOfAny(cs, searchChars.toCharArray());
2912
    }
2913
2914
    /**
2915
     * Searches a CharSequence to find the first index of any
2916
     * character not in the given set of characters.
2917
     *
2918
     * <p>A {@code null} CharSequence will return {@code -1}.
2919
     * A {@code null} or zero length search array will return {@code -1}.</p>
2920
     *
2921
     * <pre>
2922
     * StringUtils.indexOfAnyBut(null, *)                              = -1
2923
     * StringUtils.indexOfAnyBut("", *)                                = -1
2924
     * StringUtils.indexOfAnyBut(*, null)                              = -1
2925
     * StringUtils.indexOfAnyBut(*, [])                                = -1
2926
     * StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z', 'a'} ) = 3
2927
     * StringUtils.indexOfAnyBut("aba", new char[] {'z'} )             = 0
2928
     * StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'} )        = -1
2929
2930
     * </pre>
2931
     *
2932
     * @param cs  the CharSequence to check, may be null
2933
     * @param searchChars  the chars to search for, may be null
2934
     * @return the index of any of the chars, -1 if no match or null input
2935
     * @since 2.0
2936
     * @since 3.0 Changed signature from indexOfAnyBut(String, char[]) to indexOfAnyBut(CharSequence, char...)
2937
     */
2938
    public static int indexOfAnyBut(final CharSequence cs, final char... searchChars) {
2939 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2940 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
            return INDEX_NOT_FOUND;
2941
        }
2942
        final int csLen = cs.length();
2943 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2944
        final int searchLen = searchChars.length;
2945 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2946
        outer:
2947 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : changed conditional boundary → KILLED
        for (int i = 0; i < csLen; i++) {
2948
            final char ch = cs.charAt(i);
2949 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : changed conditional boundary → KILLED
            for (int j = 0; j < searchLen; j++) {
2950 1 1. indexOfAnyBut : negated conditional → KILLED
                if (searchChars[j] == ch) {
2951 5 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : changed conditional boundary → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
5. indexOfAnyBut : negated conditional → KILLED
                    if (i >= csLast || j >= searchLast || !Character.isHighSurrogate(ch)) {
2952
                        continue outer;
2953
                    }
2954 3 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
3. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                    if (searchChars[j + 1] == cs.charAt(i + 1)) {
2955
                        continue outer;
2956
                    }
2957
                }
2958
            }
2959 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
            return i;
2960
        }
2961 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
        return INDEX_NOT_FOUND;
2962
    }
2963
2964
    /**
2965
     * Search a CharSequence to find the first index of any
2966
     * character not in the given set of characters.
2967
     *
2968
     * <p>A {@code null} CharSequence will return {@code -1}.
2969
     * A {@code null} or empty search string will return {@code -1}.</p>
2970
     *
2971
     * <pre>
2972
     * StringUtils.indexOfAnyBut(null, *)            = -1
2973
     * StringUtils.indexOfAnyBut("", *)              = -1
2974
     * StringUtils.indexOfAnyBut(*, null)            = -1
2975
     * StringUtils.indexOfAnyBut(*, "")              = -1
2976
     * StringUtils.indexOfAnyBut("zzabyycdxx", "za") = 3
2977
     * StringUtils.indexOfAnyBut("zzabyycdxx", "")   = -1
2978
     * StringUtils.indexOfAnyBut("aba", "ab")        = -1
2979
     * </pre>
2980
     *
2981
     * @param seq  the CharSequence to check, may be null
2982
     * @param searchChars  the chars to search for, may be null
2983
     * @return the index of any of the chars, -1 if no match or null input
2984
     * @since 2.0
2985
     * @since 3.0 Changed signature from indexOfAnyBut(String, String) to indexOfAnyBut(CharSequence, CharSequence)
2986
     */
2987
    public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars) {
2988 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(seq) || isEmpty(searchChars)) {
2989 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
            return INDEX_NOT_FOUND;
2990
        }
2991
        final int strLen = seq.length();
2992 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : changed conditional boundary → KILLED
        for (int i = 0; i < strLen; i++) {
2993
            final char ch = seq.charAt(i);
2994 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : changed conditional boundary → KILLED
            final boolean chFound = CharSequenceUtils.indexOf(searchChars, ch, 0) >= 0;
2995 4 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : Replaced integer addition with subtraction → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
            if (i + 1 < strLen && Character.isHighSurrogate(ch)) {
2996 1 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                final char ch2 = seq.charAt(i + 1);
2997 3 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : negated conditional → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                if (chFound && CharSequenceUtils.indexOf(searchChars, ch2, 0) < 0) {
2998 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
                    return i;
2999
                }
3000 1 1. indexOfAnyBut : negated conditional → KILLED
            } else if (!chFound) {
3001 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
                return i;
3002
            }
3003
        }
3004 1 1. indexOfAnyBut : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED
        return INDEX_NOT_FOUND;
3005
    }
3006
3007
    /**
3008
     * Compares all CharSequences in an array and returns the index at which the
3009
     * CharSequences begin to differ.
3010
     *
3011
     * <p>For example,
3012
     * {@code indexOfDifference(new String[] {"i am a machine", "i am a robot"}) -> 7}</p>
3013
     *
3014
     * <pre>
3015
     * StringUtils.indexOfDifference(null)                             = -1
3016
     * StringUtils.indexOfDifference(new String[] {})                  = -1
3017
     * StringUtils.indexOfDifference(new String[] {"abc"})             = -1
3018
     * StringUtils.indexOfDifference(new String[] {null, null})        = -1
3019
     * StringUtils.indexOfDifference(new String[] {"", ""})            = -1
3020
     * StringUtils.indexOfDifference(new String[] {"", null})          = 0
3021
     * StringUtils.indexOfDifference(new String[] {"abc", null, null}) = 0
3022
     * StringUtils.indexOfDifference(new String[] {null, null, "abc"}) = 0
3023
     * StringUtils.indexOfDifference(new String[] {"", "abc"})         = 0
3024
     * StringUtils.indexOfDifference(new String[] {"abc", ""})         = 0
3025
     * StringUtils.indexOfDifference(new String[] {"abc", "abc"})      = -1
3026
     * StringUtils.indexOfDifference(new String[] {"abc", "a"})        = 1
3027
     * StringUtils.indexOfDifference(new String[] {"ab", "abxyz"})     = 2
3028
     * StringUtils.indexOfDifference(new String[] {"abcde", "abxyz"})  = 2
3029
     * StringUtils.indexOfDifference(new String[] {"abcde", "xyz"})    = 0
3030
     * StringUtils.indexOfDifference(new String[] {"xyz", "abcde"})    = 0
3031
     * StringUtils.indexOfDifference(new String[] {"i am a machine", "i am a robot"}) = 7
3032
     * </pre>
3033
     *
3034
     * @param css  array of CharSequences, entries may be null
3035
     * @return the index where the strings begin to differ; -1 if they are all equal
3036
     * @since 2.4
3037
     * @since 3.0 Changed signature from indexOfDifference(String...) to indexOfDifference(CharSequence...)
3038
     */
3039
    public static int indexOfDifference(final CharSequence... css) {
3040 2 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : negated conditional → KILLED
        if (ArrayUtils.getLength(css) <= 1) {
3041 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED
            return INDEX_NOT_FOUND;
3042
        }
3043
        boolean anyStringNull = false;
3044
        boolean allStringsNull = true;
3045
        final int arrayLen = css.length;
3046
        int shortestStrLen = Integer.MAX_VALUE;
3047
        int longestStrLen = 0;
3048
3049
        // find the min and max string lengths; this avoids checking to make
3050
        // sure we are not exceeding the length of the string each time through
3051
        // the bottom loop.
3052
        for (final CharSequence cs : css) {
3053 1 1. indexOfDifference : negated conditional → KILLED
            if (cs == null) {
3054
                anyStringNull = true;
3055
                shortestStrLen = 0;
3056
            } else {
3057
                allStringsNull = false;
3058
                shortestStrLen = Math.min(cs.length(), shortestStrLen);
3059
                longestStrLen = Math.max(cs.length(), longestStrLen);
3060
            }
3061
        }
3062
3063
        // handle lists containing all nulls or all empty strings
3064 3 1. indexOfDifference : negated conditional → SURVIVED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (allStringsNull || longestStrLen == 0 && !anyStringNull) {
3065 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → SURVIVED
            return INDEX_NOT_FOUND;
3066
        }
3067
3068
        // handle lists containing some nulls or some empty strings
3069 1 1. indexOfDifference : negated conditional → KILLED
        if (shortestStrLen == 0) {
3070
            return 0;
3071
        }
3072
3073
        // find the position with the first difference across all strings
3074
        int firstDiff = -1;
3075 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
        for (int stringPos = 0; stringPos < shortestStrLen; stringPos++) {
3076
            final char comparisonChar = css[0].charAt(stringPos);
3077 2 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : negated conditional → KILLED
            for (int arrayPos = 1; arrayPos < arrayLen; arrayPos++) {
3078 1 1. indexOfDifference : negated conditional → KILLED
                if (css[arrayPos].charAt(stringPos) != comparisonChar) {
3079
                    firstDiff = stringPos;
3080
                    break;
3081
                }
3082
            }
3083 1 1. indexOfDifference : negated conditional → KILLED
            if (firstDiff != -1) {
3084
                break;
3085
            }
3086
        }
3087
3088 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (firstDiff == -1 && shortestStrLen != longestStrLen) {
3089
            // we compared all of the characters up to the length of the
3090
            // shortest string and didn't find a match, but the string lengths
3091
            // vary, so return the length of the shortest string.
3092 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED
            return shortestStrLen;
3093
        }
3094 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED
        return firstDiff;
3095
    }
3096
3097
    /**
3098
     * Compares two CharSequences, and returns the index at which the
3099
     * CharSequences begin to differ.
3100
     *
3101
     * <p>For example,
3102
     * {@code indexOfDifference("i am a machine", "i am a robot") -> 7}</p>
3103
     *
3104
     * <pre>
3105
     * StringUtils.indexOfDifference(null, null)       = -1
3106
     * StringUtils.indexOfDifference("", "")           = -1
3107
     * StringUtils.indexOfDifference("", "abc")        = 0
3108
     * StringUtils.indexOfDifference("abc", "")        = 0
3109
     * StringUtils.indexOfDifference("abc", "abc")     = -1
3110
     * StringUtils.indexOfDifference("ab", "abxyz")    = 2
3111
     * StringUtils.indexOfDifference("abcde", "abxyz") = 2
3112
     * StringUtils.indexOfDifference("abcde", "xyz")   = 0
3113
     * </pre>
3114
     *
3115
     * @param cs1  the first CharSequence, may be null
3116
     * @param cs2  the second CharSequence, may be null
3117
     * @return the index where cs1 and cs2 begin to differ; -1 if they are equal
3118
     * @since 2.0
3119
     * @since 3.0 Changed signature from indexOfDifference(String, String) to
3120
     * indexOfDifference(CharSequence, CharSequence)
3121
     */
3122
    public static int indexOfDifference(final CharSequence cs1, final CharSequence cs2) {
3123 1 1. indexOfDifference : negated conditional → KILLED
        if (cs1 == cs2) {
3124 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED
            return INDEX_NOT_FOUND;
3125
        }
3126 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
3127
            return 0;
3128
        }
3129
        int i;
3130 4 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : changed conditional boundary → KILLED
        for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
3131 1 1. indexOfDifference : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
3132
                break;
3133
            }
3134
        }
3135 4 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : changed conditional boundary → SURVIVED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : negated conditional → KILLED
        if (i < cs2.length() || i < cs1.length()) {
3136 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED
            return i;
3137
        }
3138 1 1. indexOfDifference : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → NO_COVERAGE
        return INDEX_NOT_FOUND;
3139
    }
3140
3141
    /**
3142
     * Case in-sensitive find of the first index within a CharSequence.
3143
     *
3144
     * <p>A {@code null} CharSequence will return {@code -1}.
3145
     * A negative start position is treated as zero.
3146
     * An empty ("") search CharSequence always matches.
3147
     * A start position greater than the string length only matches
3148
     * an empty search CharSequence.</p>
3149
     *
3150
     * <pre>
3151
     * StringUtils.indexOfIgnoreCase(null, *)          = -1
3152
     * StringUtils.indexOfIgnoreCase(*, null)          = -1
3153
     * StringUtils.indexOfIgnoreCase("", "")           = 0
3154
     * StringUtils.indexOfIgnoreCase(" ", " ")         = 0
3155
     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
3156
     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
3157
     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
3158
     * </pre>
3159
     *
3160
     * @param str  the CharSequence to check, may be null
3161
     * @param searchStr  the CharSequence to find, may be null
3162
     * @return the first index of the search CharSequence,
3163
     *  -1 if no match or {@code null} string input
3164
     * @since 2.5
3165
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)
3166
     */
3167
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
3168 1 1. indexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED
        return indexOfIgnoreCase(str, searchStr, 0);
3169
    }
3170
3171
    /**
3172
     * Case in-sensitive find of the first index within a CharSequence
3173
     * from the specified position.
3174
     *
3175
     * <p>A {@code null} CharSequence will return {@code -1}.
3176
     * A negative start position is treated as zero.
3177
     * An empty ("") search CharSequence always matches.
3178
     * A start position greater than the string length only matches
3179
     * an empty search CharSequence.</p>
3180
     *
3181
     * <pre>
3182
     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
3183
     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
3184
     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
3185
     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
3186
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
3187
     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
3188
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
3189
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
3190
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
3191
     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
3192
     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
3193
     * </pre>
3194
     *
3195
     * @param str  the CharSequence to check, may be null
3196
     * @param searchStr  the CharSequence to find, may be null
3197
     * @param startPos  the start position, negative treated as zero
3198
     * @return the first index of the search CharSequence (always &ge; startPos),
3199
     *  -1 if no match or {@code null} string input
3200
     * @since 2.5
3201
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)
3202
     */
3203
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
3204 2 1. indexOfIgnoreCase : negated conditional → KILLED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
3205 1 1. indexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED
            return INDEX_NOT_FOUND;
3206
        }
3207 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
3208
            startPos = 0;
3209
        }
3210 2 1. indexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. indexOfIgnoreCase : Replaced integer addition with subtraction → KILLED
        final int endLimit = str.length() - searchStr.length() + 1;
3211 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos > endLimit) {
3212 1 1. indexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED
            return INDEX_NOT_FOUND;
3213
        }
3214 1 1. indexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
3215 1 1. indexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED
            return startPos;
3216
        }
3217 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i < endLimit; i++) {
3218 1 1. indexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
3219 1 1. indexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED
                return i;
3220
            }
3221
        }
3222 1 1. indexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED
        return INDEX_NOT_FOUND;
3223
    }
3224
3225
    /**
3226
     * Checks if all of the CharSequences are empty (""), null or whitespace only.
3227
     *
3228
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3229
     *
3230
     * <pre>
3231
     * StringUtils.isAllBlank(null)             = true
3232
     * StringUtils.isAllBlank(null, "foo")      = false
3233
     * StringUtils.isAllBlank(null, null)       = true
3234
     * StringUtils.isAllBlank("", "bar")        = false
3235
     * StringUtils.isAllBlank("bob", "")        = false
3236
     * StringUtils.isAllBlank("  bob  ", null)  = false
3237
     * StringUtils.isAllBlank(" ", "bar")       = false
3238
     * StringUtils.isAllBlank("foo", "bar")     = false
3239
     * StringUtils.isAllBlank(new String[] {})  = true
3240
     * </pre>
3241
     *
3242
     * @param css  the CharSequences to check, may be null or empty
3243
     * @return {@code true} if all of the CharSequences are empty or null or whitespace only
3244
     * @since 3.6
3245
     */
3246
    public static boolean isAllBlank(final CharSequence... css) {
3247 1 1. isAllBlank : negated conditional → KILLED
        if (ArrayUtils.isEmpty(css)) {
3248 1 1. isAllBlank : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllBlank → KILLED
            return true;
3249
        }
3250
        for (final CharSequence cs : css) {
3251 1 1. isAllBlank : negated conditional → KILLED
            if (isNotBlank(cs)) {
3252 1 1. isAllBlank : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllBlank → KILLED
               return false;
3253
            }
3254
        }
3255 1 1. isAllBlank : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllBlank → KILLED
        return true;
3256
    }
3257
3258
    /**
3259
     * Checks if all of the CharSequences are empty ("") or null.
3260
     *
3261
     * <pre>
3262
     * StringUtils.isAllEmpty(null)             = true
3263
     * StringUtils.isAllEmpty(null, "")         = true
3264
     * StringUtils.isAllEmpty(new String[] {})  = true
3265
     * StringUtils.isAllEmpty(null, "foo")      = false
3266
     * StringUtils.isAllEmpty("", "bar")        = false
3267
     * StringUtils.isAllEmpty("bob", "")        = false
3268
     * StringUtils.isAllEmpty("  bob  ", null)  = false
3269
     * StringUtils.isAllEmpty(" ", "bar")       = false
3270
     * StringUtils.isAllEmpty("foo", "bar")     = false
3271
     * </pre>
3272
     *
3273
     * @param css  the CharSequences to check, may be null or empty
3274
     * @return {@code true} if all of the CharSequences are empty or null
3275
     * @since 3.6
3276
     */
3277
    public static boolean isAllEmpty(final CharSequence... css) {
3278 1 1. isAllEmpty : negated conditional → KILLED
        if (ArrayUtils.isEmpty(css)) {
3279 1 1. isAllEmpty : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllEmpty → KILLED
            return true;
3280
        }
3281
        for (final CharSequence cs : css) {
3282 1 1. isAllEmpty : negated conditional → KILLED
            if (isNotEmpty(cs)) {
3283 1 1. isAllEmpty : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllEmpty → KILLED
                return false;
3284
            }
3285
        }
3286 1 1. isAllEmpty : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllEmpty → KILLED
        return true;
3287
    }
3288
3289
    /**
3290
     * Checks if the CharSequence contains only lowercase characters.
3291
     *
3292
     * <p>{@code null} will return {@code false}.
3293
     * An empty CharSequence (length()=0) will return {@code false}.</p>
3294
     *
3295
     * <pre>
3296
     * StringUtils.isAllLowerCase(null)   = false
3297
     * StringUtils.isAllLowerCase("")     = false
3298
     * StringUtils.isAllLowerCase("  ")   = false
3299
     * StringUtils.isAllLowerCase("abc")  = true
3300
     * StringUtils.isAllLowerCase("abC")  = false
3301
     * StringUtils.isAllLowerCase("ab c") = false
3302
     * StringUtils.isAllLowerCase("ab1c") = false
3303
     * StringUtils.isAllLowerCase("ab/c") = false
3304
     * </pre>
3305
     *
3306
     * @param cs  the CharSequence to check, may be null
3307
     * @return {@code true} if only contains lowercase characters, and is non-null
3308
     * @since 2.5
3309
     * @since 3.0 Changed signature from isAllLowerCase(String) to isAllLowerCase(CharSequence)
3310
     */
3311
    public static boolean isAllLowerCase(final CharSequence cs) {
3312 1 1. isAllLowerCase : negated conditional → KILLED
        if (isEmpty(cs)) {
3313 1 1. isAllLowerCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllLowerCase → KILLED
            return false;
3314
        }
3315
        final int sz = cs.length();
3316 2 1. isAllLowerCase : changed conditional boundary → KILLED
2. isAllLowerCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3317 1 1. isAllLowerCase : negated conditional → KILLED
            if (!Character.isLowerCase(cs.charAt(i))) {
3318 1 1. isAllLowerCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllLowerCase → KILLED
                return false;
3319
            }
3320
        }
3321 1 1. isAllLowerCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllLowerCase → KILLED
        return true;
3322
    }
3323
3324
    /**
3325
     * Checks if the CharSequence contains only uppercase characters.
3326
     *
3327
     * <p>{@code null} will return {@code false}.
3328
     * An empty String (length()=0) will return {@code false}.</p>
3329
     *
3330
     * <pre>
3331
     * StringUtils.isAllUpperCase(null)   = false
3332
     * StringUtils.isAllUpperCase("")     = false
3333
     * StringUtils.isAllUpperCase("  ")   = false
3334
     * StringUtils.isAllUpperCase("ABC")  = true
3335
     * StringUtils.isAllUpperCase("aBC")  = false
3336
     * StringUtils.isAllUpperCase("A C")  = false
3337
     * StringUtils.isAllUpperCase("A1C")  = false
3338
     * StringUtils.isAllUpperCase("A/C")  = false
3339
     * </pre>
3340
     *
3341
     * @param cs the CharSequence to check, may be null
3342
     * @return {@code true} if only contains uppercase characters, and is non-null
3343
     * @since 2.5
3344
     * @since 3.0 Changed signature from isAllUpperCase(String) to isAllUpperCase(CharSequence)
3345
     */
3346
    public static boolean isAllUpperCase(final CharSequence cs) {
3347 1 1. isAllUpperCase : negated conditional → KILLED
        if (isEmpty(cs)) {
3348 1 1. isAllUpperCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllUpperCase → KILLED
            return false;
3349
        }
3350
        final int sz = cs.length();
3351 2 1. isAllUpperCase : changed conditional boundary → KILLED
2. isAllUpperCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3352 1 1. isAllUpperCase : negated conditional → KILLED
            if (!Character.isUpperCase(cs.charAt(i))) {
3353 1 1. isAllUpperCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllUpperCase → KILLED
                return false;
3354
            }
3355
        }
3356 1 1. isAllUpperCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllUpperCase → KILLED
        return true;
3357
    }
3358
3359
    /**
3360
     * Checks if the CharSequence contains only Unicode letters.
3361
     *
3362
     * <p>{@code null} will return {@code false}.
3363
     * An empty CharSequence (length()=0) will return {@code false}.</p>
3364
     *
3365
     * <pre>
3366
     * StringUtils.isAlpha(null)   = false
3367
     * StringUtils.isAlpha("")     = false
3368
     * StringUtils.isAlpha("  ")   = false
3369
     * StringUtils.isAlpha("abc")  = true
3370
     * StringUtils.isAlpha("ab2c") = false
3371
     * StringUtils.isAlpha("ab-c") = false
3372
     * </pre>
3373
     *
3374
     * @param cs  the CharSequence to check, may be null
3375
     * @return {@code true} if only contains letters, and is non-null
3376
     * @since 3.0 Changed signature from isAlpha(String) to isAlpha(CharSequence)
3377
     * @since 3.0 Changed "" to return false and not true
3378
     */
3379
    public static boolean isAlpha(final CharSequence cs) {
3380 1 1. isAlpha : negated conditional → KILLED
        if (isEmpty(cs)) {
3381 1 1. isAlpha : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlpha → KILLED
            return false;
3382
        }
3383
        final int sz = cs.length();
3384 2 1. isAlpha : negated conditional → KILLED
2. isAlpha : changed conditional boundary → KILLED
        for (int i = 0; i < sz; i++) {
3385 1 1. isAlpha : negated conditional → KILLED
            if (!Character.isLetter(cs.charAt(i))) {
3386 1 1. isAlpha : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlpha → KILLED
                return false;
3387
            }
3388
        }
3389 1 1. isAlpha : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlpha → KILLED
        return true;
3390
    }
3391
3392
    /**
3393
     * Checks if the CharSequence contains only Unicode letters or digits.
3394
     *
3395
     * <p>{@code null} will return {@code false}.
3396
     * An empty CharSequence (length()=0) will return {@code false}.</p>
3397
     *
3398
     * <pre>
3399
     * StringUtils.isAlphanumeric(null)   = false
3400
     * StringUtils.isAlphanumeric("")     = false
3401
     * StringUtils.isAlphanumeric("  ")   = false
3402
     * StringUtils.isAlphanumeric("abc")  = true
3403
     * StringUtils.isAlphanumeric("ab c") = false
3404
     * StringUtils.isAlphanumeric("ab2c") = true
3405
     * StringUtils.isAlphanumeric("ab-c") = false
3406
     * </pre>
3407
     *
3408
     * @param cs  the CharSequence to check, may be null
3409
     * @return {@code true} if only contains letters or digits,
3410
     *  and is non-null
3411
     * @since 3.0 Changed signature from isAlphanumeric(String) to isAlphanumeric(CharSequence)
3412
     * @since 3.0 Changed "" to return false and not true
3413
     */
3414
    public static boolean isAlphanumeric(final CharSequence cs) {
3415 1 1. isAlphanumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
3416 1 1. isAlphanumeric : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumeric → KILLED
            return false;
3417
        }
3418
        final int sz = cs.length();
3419 2 1. isAlphanumeric : changed conditional boundary → KILLED
2. isAlphanumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3420 1 1. isAlphanumeric : negated conditional → KILLED
            if (!Character.isLetterOrDigit(cs.charAt(i))) {
3421 1 1. isAlphanumeric : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumeric → KILLED
                return false;
3422
            }
3423
        }
3424 1 1. isAlphanumeric : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlphanumeric → KILLED
        return true;
3425
    }
3426
3427
    /**
3428
     * Checks if the CharSequence contains only Unicode letters, digits
3429
     * or space ({@code ' '}).
3430
     *
3431
     * <p>{@code null} will return {@code false}.
3432
     * An empty CharSequence (length()=0) will return {@code true}.</p>
3433
     *
3434
     * <pre>
3435
     * StringUtils.isAlphanumericSpace(null)   = false
3436
     * StringUtils.isAlphanumericSpace("")     = true
3437
     * StringUtils.isAlphanumericSpace("  ")   = true
3438
     * StringUtils.isAlphanumericSpace("abc")  = true
3439
     * StringUtils.isAlphanumericSpace("ab c") = true
3440
     * StringUtils.isAlphanumericSpace("ab2c") = true
3441
     * StringUtils.isAlphanumericSpace("ab-c") = false
3442
     * </pre>
3443
     *
3444
     * @param cs  the CharSequence to check, may be null
3445
     * @return {@code true} if only contains letters, digits or space,
3446
     *  and is non-null
3447
     * @since 3.0 Changed signature from isAlphanumericSpace(String) to isAlphanumericSpace(CharSequence)
3448
     */
3449
    public static boolean isAlphanumericSpace(final CharSequence cs) {
3450 1 1. isAlphanumericSpace : negated conditional → KILLED
        if (cs == null) {
3451 1 1. isAlphanumericSpace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumericSpace → KILLED
            return false;
3452
        }
3453
        final int sz = cs.length();
3454 2 1. isAlphanumericSpace : changed conditional boundary → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3455
            final char nowChar = cs.charAt(i);
3456 2 1. isAlphanumericSpace : negated conditional → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
            if (nowChar != ' ' && !Character.isLetterOrDigit(nowChar) ) {
3457 1 1. isAlphanumericSpace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumericSpace → KILLED
                return false;
3458
            }
3459
        }
3460 1 1. isAlphanumericSpace : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlphanumericSpace → KILLED
        return true;
3461
    }
3462
3463
    /**
3464
     * Checks if the CharSequence contains only Unicode letters and
3465
     * space (' ').
3466
     *
3467
     * <p>{@code null} will return {@code false}
3468
     * An empty CharSequence (length()=0) will return {@code true}.</p>
3469
     *
3470
     * <pre>
3471
     * StringUtils.isAlphaSpace(null)   = false
3472
     * StringUtils.isAlphaSpace("")     = true
3473
     * StringUtils.isAlphaSpace("  ")   = true
3474
     * StringUtils.isAlphaSpace("abc")  = true
3475
     * StringUtils.isAlphaSpace("ab c") = true
3476
     * StringUtils.isAlphaSpace("ab2c") = false
3477
     * StringUtils.isAlphaSpace("ab-c") = false
3478
     * </pre>
3479
     *
3480
     * @param cs  the CharSequence to check, may be null
3481
     * @return {@code true} if only contains letters and space,
3482
     *  and is non-null
3483
     * @since 3.0 Changed signature from isAlphaSpace(String) to isAlphaSpace(CharSequence)
3484
     */
3485
    public static boolean isAlphaSpace(final CharSequence cs) {
3486 1 1. isAlphaSpace : negated conditional → KILLED
        if (cs == null) {
3487 1 1. isAlphaSpace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphaSpace → KILLED
            return false;
3488
        }
3489
        final int sz = cs.length();
3490 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : changed conditional boundary → KILLED
        for (int i = 0; i < sz; i++) {
3491
            final char nowChar = cs.charAt(i);
3492 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : negated conditional → KILLED
            if (nowChar != ' ' && !Character.isLetter(nowChar)) {
3493 1 1. isAlphaSpace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphaSpace → KILLED
                return false;
3494
            }
3495
        }
3496 1 1. isAlphaSpace : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlphaSpace → KILLED
        return true;
3497
    }
3498
3499
    /**
3500
     * Checks if any of the CharSequences are empty ("") or null or whitespace only.
3501
     *
3502
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3503
     *
3504
     * <pre>
3505
     * StringUtils.isAnyBlank((String) null)    = true
3506
     * StringUtils.isAnyBlank((String[]) null)  = false
3507
     * StringUtils.isAnyBlank(null, "foo")      = true
3508
     * StringUtils.isAnyBlank(null, null)       = true
3509
     * StringUtils.isAnyBlank("", "bar")        = true
3510
     * StringUtils.isAnyBlank("bob", "")        = true
3511
     * StringUtils.isAnyBlank("  bob  ", null)  = true
3512
     * StringUtils.isAnyBlank(" ", "bar")       = true
3513
     * StringUtils.isAnyBlank(new String[] {})  = false
3514
     * StringUtils.isAnyBlank(new String[]{""}) = true
3515
     * StringUtils.isAnyBlank("foo", "bar")     = false
3516
     * </pre>
3517
     *
3518
     * @param css  the CharSequences to check, may be null or empty
3519
     * @return {@code true} if any of the CharSequences are empty or null or whitespace only
3520
     * @since 3.2
3521
     */
3522
    public static boolean isAnyBlank(final CharSequence... css) {
3523 1 1. isAnyBlank : negated conditional → KILLED
        if (ArrayUtils.isEmpty(css)) {
3524 1 1. isAnyBlank : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyBlank → KILLED
            return false;
3525
        }
3526
        for (final CharSequence cs : css) {
3527 1 1. isAnyBlank : negated conditional → KILLED
            if (isBlank(cs)) {
3528 1 1. isAnyBlank : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAnyBlank → KILLED
                return true;
3529
            }
3530
        }
3531 1 1. isAnyBlank : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyBlank → KILLED
        return false;
3532
    }
3533
3534
    /**
3535
     * Checks if any of the CharSequences are empty ("") or null.
3536
     *
3537
     * <pre>
3538
     * StringUtils.isAnyEmpty((String) null)    = true
3539
     * StringUtils.isAnyEmpty((String[]) null)  = false
3540
     * StringUtils.isAnyEmpty(null, "foo")      = true
3541
     * StringUtils.isAnyEmpty("", "bar")        = true
3542
     * StringUtils.isAnyEmpty("bob", "")        = true
3543
     * StringUtils.isAnyEmpty("  bob  ", null)  = true
3544
     * StringUtils.isAnyEmpty(" ", "bar")       = false
3545
     * StringUtils.isAnyEmpty("foo", "bar")     = false
3546
     * StringUtils.isAnyEmpty(new String[]{})   = false
3547
     * StringUtils.isAnyEmpty(new String[]{""}) = true
3548
     * </pre>
3549
     *
3550
     * @param css  the CharSequences to check, may be null or empty
3551
     * @return {@code true} if any of the CharSequences are empty or null
3552
     * @since 3.2
3553
     */
3554
    public static boolean isAnyEmpty(final CharSequence... css) {
3555 1 1. isAnyEmpty : negated conditional → KILLED
        if (ArrayUtils.isEmpty(css)) {
3556 1 1. isAnyEmpty : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyEmpty → KILLED
            return false;
3557
        }
3558
        for (final CharSequence cs : css) {
3559 1 1. isAnyEmpty : negated conditional → KILLED
            if (isEmpty(cs)) {
3560 1 1. isAnyEmpty : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAnyEmpty → KILLED
                return true;
3561
            }
3562
        }
3563 1 1. isAnyEmpty : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyEmpty → KILLED
        return false;
3564
    }
3565
3566
    /**
3567
     * Checks if the CharSequence contains only ASCII printable characters.
3568
     *
3569
     * <p>{@code null} will return {@code false}.
3570
     * An empty CharSequence (length()=0) will return {@code true}.</p>
3571
     *
3572
     * <pre>
3573
     * StringUtils.isAsciiPrintable(null)     = false
3574
     * StringUtils.isAsciiPrintable("")       = true
3575
     * StringUtils.isAsciiPrintable(" ")      = true
3576
     * StringUtils.isAsciiPrintable("Ceki")   = true
3577
     * StringUtils.isAsciiPrintable("ab2c")   = true
3578
     * StringUtils.isAsciiPrintable("!ab-c~") = true
3579
     * StringUtils.isAsciiPrintable("\u0020") = true
3580
     * StringUtils.isAsciiPrintable("\u0021") = true
3581
     * StringUtils.isAsciiPrintable("\u007e") = true
3582
     * StringUtils.isAsciiPrintable("\u007f") = false
3583
     * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
3584
     * </pre>
3585
     *
3586
     * @param cs the CharSequence to check, may be null
3587
     * @return {@code true} if every character is in the range
3588
     *  32 through 126
3589
     * @since 2.1
3590
     * @since 3.0 Changed signature from isAsciiPrintable(String) to isAsciiPrintable(CharSequence)
3591
     */
3592
    public static boolean isAsciiPrintable(final CharSequence cs) {
3593 1 1. isAsciiPrintable : negated conditional → KILLED
        if (cs == null) {
3594 1 1. isAsciiPrintable : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAsciiPrintable → KILLED
            return false;
3595
        }
3596
        final int sz = cs.length();
3597 2 1. isAsciiPrintable : changed conditional boundary → KILLED
2. isAsciiPrintable : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3598 1 1. isAsciiPrintable : negated conditional → KILLED
            if (!CharUtils.isAsciiPrintable(cs.charAt(i))) {
3599 1 1. isAsciiPrintable : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAsciiPrintable → KILLED
                return false;
3600
            }
3601
        }
3602 1 1. isAsciiPrintable : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAsciiPrintable → KILLED
        return true;
3603
    }
3604
3605
    /**
3606
     * Checks if a CharSequence is empty (""), null or whitespace only.
3607
     *
3608
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3609
     *
3610
     * <pre>
3611
     * StringUtils.isBlank(null)      = true
3612
     * StringUtils.isBlank("")        = true
3613
     * StringUtils.isBlank(" ")       = true
3614
     * StringUtils.isBlank("bob")     = false
3615
     * StringUtils.isBlank("  bob  ") = false
3616
     * </pre>
3617
     *
3618
     * @param cs  the CharSequence to check, may be null
3619
     * @return {@code true} if the CharSequence is null, empty or whitespace only
3620
     * @since 2.0
3621
     * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
3622
     */
3623
    public static boolean isBlank(final CharSequence cs) {
3624
        final int strLen = length(cs);
3625 1 1. isBlank : negated conditional → KILLED
        if (strLen == 0) {
3626 1 1. isBlank : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isBlank → KILLED
            return true;
3627
        }
3628 2 1. isBlank : changed conditional boundary → KILLED
2. isBlank : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
3629 1 1. isBlank : negated conditional → KILLED
            if (!Character.isWhitespace(cs.charAt(i))) {
3630 1 1. isBlank : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isBlank → KILLED
                return false;
3631
            }
3632
        }
3633 1 1. isBlank : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isBlank → KILLED
        return true;
3634
    }
3635
3636
    /**
3637
     * Checks if a CharSequence is empty ("") or null.
3638
     *
3639
     * <pre>
3640
     * StringUtils.isEmpty(null)      = true
3641
     * StringUtils.isEmpty("")        = true
3642
     * StringUtils.isEmpty(" ")       = false
3643
     * StringUtils.isEmpty("bob")     = false
3644
     * StringUtils.isEmpty("  bob  ") = false
3645
     * </pre>
3646
     *
3647
     * <p>NOTE: This method changed in Lang version 2.0.
3648
     * It no longer trims the CharSequence.
3649
     * That functionality is available in isBlank().</p>
3650
     *
3651
     * @param cs  the CharSequence to check, may be null
3652
     * @return {@code true} if the CharSequence is empty or null
3653
     * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
3654
     */
3655
    public static boolean isEmpty(final CharSequence cs) {
3656 3 1. isEmpty : negated conditional → KILLED
2. isEmpty : negated conditional → KILLED
3. isEmpty : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isEmpty → KILLED
        return cs == null || cs.length() == 0;
3657
    }
3658
3659
    /**
3660
     * Checks if the CharSequence contains mixed casing of both uppercase and lowercase characters.
3661
     *
3662
     * <p>{@code null} will return {@code false}. An empty CharSequence ({@code length()=0}) will return
3663
     * {@code false}.</p>
3664
     *
3665
     * <pre>
3666
     * StringUtils.isMixedCase(null)    = false
3667
     * StringUtils.isMixedCase("")      = false
3668
     * StringUtils.isMixedCase(" ")     = false
3669
     * StringUtils.isMixedCase("ABC")   = false
3670
     * StringUtils.isMixedCase("abc")   = false
3671
     * StringUtils.isMixedCase("aBc")   = true
3672
     * StringUtils.isMixedCase("A c")   = true
3673
     * StringUtils.isMixedCase("A1c")   = true
3674
     * StringUtils.isMixedCase("a/C")   = true
3675
     * StringUtils.isMixedCase("aC\t")  = true
3676
     * </pre>
3677
     *
3678
     * @param cs the CharSequence to check, may be null
3679
     * @return {@code true} if the CharSequence contains both uppercase and lowercase characters
3680
     * @since 3.5
3681
     */
3682
    public static boolean isMixedCase(final CharSequence cs) {
3683 2 1. isMixedCase : negated conditional → KILLED
2. isMixedCase : negated conditional → KILLED
        if (isEmpty(cs) || cs.length() == 1) {
3684 1 1. isMixedCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isMixedCase → KILLED
            return false;
3685
        }
3686
        boolean containsUppercase = false;
3687
        boolean containsLowercase = false;
3688
        final int sz = cs.length();
3689 2 1. isMixedCase : changed conditional boundary → KILLED
2. isMixedCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3690
            final char nowChar = cs.charAt(i);
3691 1 1. isMixedCase : negated conditional → KILLED
            if (Character.isUpperCase(nowChar)) {
3692
                containsUppercase = true;
3693 1 1. isMixedCase : negated conditional → KILLED
            } else if (Character.isLowerCase(nowChar)) {
3694
                containsLowercase = true;
3695
            }
3696 2 1. isMixedCase : negated conditional → KILLED
2. isMixedCase : negated conditional → KILLED
            if (containsUppercase && containsLowercase) {
3697 1 1. isMixedCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isMixedCase → KILLED
                return true;
3698
            }
3699
        }
3700 1 1. isMixedCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isMixedCase → KILLED
        return false;
3701
    }
3702
3703
    /**
3704
     * Checks if none of the CharSequences are empty (""), null or whitespace only.
3705
     *
3706
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3707
     *
3708
     * <pre>
3709
     * StringUtils.isNoneBlank((String) null)    = false
3710
     * StringUtils.isNoneBlank((String[]) null)  = true
3711
     * StringUtils.isNoneBlank(null, "foo")      = false
3712
     * StringUtils.isNoneBlank(null, null)       = false
3713
     * StringUtils.isNoneBlank("", "bar")        = false
3714
     * StringUtils.isNoneBlank("bob", "")        = false
3715
     * StringUtils.isNoneBlank("  bob  ", null)  = false
3716
     * StringUtils.isNoneBlank(" ", "bar")       = false
3717
     * StringUtils.isNoneBlank(new String[] {})  = true
3718
     * StringUtils.isNoneBlank(new String[]{""}) = false
3719
     * StringUtils.isNoneBlank("foo", "bar")     = true
3720
     * </pre>
3721
     *
3722
     * @param css  the CharSequences to check, may be null or empty
3723
     * @return {@code true} if none of the CharSequences are empty or null or whitespace only
3724
     * @since 3.2
3725
     */
3726
    public static boolean isNoneBlank(final CharSequence... css) {
3727 2 1. isNoneBlank : negated conditional → KILLED
2. isNoneBlank : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNoneBlank → KILLED
      return !isAnyBlank(css);
3728
    }
3729
3730
    /**
3731
     * Checks if none of the CharSequences are empty ("") or null.
3732
     *
3733
     * <pre>
3734
     * StringUtils.isNoneEmpty((String) null)    = false
3735
     * StringUtils.isNoneEmpty((String[]) null)  = true
3736
     * StringUtils.isNoneEmpty(null, "foo")      = false
3737
     * StringUtils.isNoneEmpty("", "bar")        = false
3738
     * StringUtils.isNoneEmpty("bob", "")        = false
3739
     * StringUtils.isNoneEmpty("  bob  ", null)  = false
3740
     * StringUtils.isNoneEmpty(new String[] {})  = true
3741
     * StringUtils.isNoneEmpty(new String[]{""}) = false
3742
     * StringUtils.isNoneEmpty(" ", "bar")       = true
3743
     * StringUtils.isNoneEmpty("foo", "bar")     = true
3744
     * </pre>
3745
     *
3746
     * @param css  the CharSequences to check, may be null or empty
3747
     * @return {@code true} if none of the CharSequences are empty or null
3748
     * @since 3.2
3749
     */
3750
    public static boolean isNoneEmpty(final CharSequence... css) {
3751 2 1. isNoneEmpty : negated conditional → KILLED
2. isNoneEmpty : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNoneEmpty → KILLED
      return !isAnyEmpty(css);
3752
    }
3753
3754
    /**
3755
     * Checks if a CharSequence is not empty (""), not null and not whitespace only.
3756
     *
3757
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3758
     *
3759
     * <pre>
3760
     * StringUtils.isNotBlank(null)      = false
3761
     * StringUtils.isNotBlank("")        = false
3762
     * StringUtils.isNotBlank(" ")       = false
3763
     * StringUtils.isNotBlank("bob")     = true
3764
     * StringUtils.isNotBlank("  bob  ") = true
3765
     * </pre>
3766
     *
3767
     * @param cs  the CharSequence to check, may be null
3768
     * @return {@code true} if the CharSequence is
3769
     *  not empty and not null and not whitespace only
3770
     * @since 2.0
3771
     * @since 3.0 Changed signature from isNotBlank(String) to isNotBlank(CharSequence)
3772
     */
3773
    public static boolean isNotBlank(final CharSequence cs) {
3774 2 1. isNotBlank : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNotBlank → KILLED
2. isNotBlank : negated conditional → KILLED
        return !isBlank(cs);
3775
    }
3776
3777
    /**
3778
     * Checks if a CharSequence is not empty ("") and not null.
3779
     *
3780
     * <pre>
3781
     * StringUtils.isNotEmpty(null)      = false
3782
     * StringUtils.isNotEmpty("")        = false
3783
     * StringUtils.isNotEmpty(" ")       = true
3784
     * StringUtils.isNotEmpty("bob")     = true
3785
     * StringUtils.isNotEmpty("  bob  ") = true
3786
     * </pre>
3787
     *
3788
     * @param cs  the CharSequence to check, may be null
3789
     * @return {@code true} if the CharSequence is not empty and not null
3790
     * @since 3.0 Changed signature from isNotEmpty(String) to isNotEmpty(CharSequence)
3791
     */
3792
    public static boolean isNotEmpty(final CharSequence cs) {
3793 2 1. isNotEmpty : negated conditional → KILLED
2. isNotEmpty : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNotEmpty → KILLED
        return !isEmpty(cs);
3794
    }
3795
3796
    /**
3797
     * Checks if the CharSequence contains only Unicode digits.
3798
     * A decimal point is not a Unicode digit and returns false.
3799
     *
3800
     * <p>{@code null} will return {@code false}.
3801
     * An empty CharSequence (length()=0) will return {@code false}.</p>
3802
     *
3803
     * <p>Note that the method does not allow for a leading sign, either positive or negative.
3804
     * Also, if a String passes the numeric test, it may still generate a NumberFormatException
3805
     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is outside the range
3806
     * for int or long respectively.</p>
3807
     *
3808
     * <pre>
3809
     * StringUtils.isNumeric(null)   = false
3810
     * StringUtils.isNumeric("")     = false
3811
     * StringUtils.isNumeric("  ")   = false
3812
     * StringUtils.isNumeric("123")  = true
3813
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
3814
     * StringUtils.isNumeric("12 3") = false
3815
     * StringUtils.isNumeric("ab2c") = false
3816
     * StringUtils.isNumeric("12-3") = false
3817
     * StringUtils.isNumeric("12.3") = false
3818
     * StringUtils.isNumeric("-123") = false
3819
     * StringUtils.isNumeric("+123") = false
3820
     * </pre>
3821
     *
3822
     * @param cs  the CharSequence to check, may be null
3823
     * @return {@code true} if only contains digits, and is non-null
3824
     * @since 3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence)
3825
     * @since 3.0 Changed "" to return false and not true
3826
     */
3827
    public static boolean isNumeric(final CharSequence cs) {
3828 1 1. isNumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
3829 1 1. isNumeric : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumeric → KILLED
            return false;
3830
        }
3831
        final int sz = cs.length();
3832 2 1. isNumeric : changed conditional boundary → KILLED
2. isNumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
3833 1 1. isNumeric : negated conditional → KILLED
            if (!Character.isDigit(cs.charAt(i))) {
3834 1 1. isNumeric : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumeric → KILLED
                return false;
3835
            }
3836
        }
3837 1 1. isNumeric : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isNumeric → KILLED
        return true;
3838
    }
3839
3840
    /**
3841
     * Checks if the CharSequence contains only Unicode digits or space
3842
     * ({@code ' '}).
3843
     * A decimal point is not a Unicode digit and returns false.
3844
     *
3845
     * <p>{@code null} will return {@code false}.
3846
     * An empty CharSequence (length()=0) will return {@code true}.</p>
3847
     *
3848
     * <pre>
3849
     * StringUtils.isNumericSpace(null)   = false
3850
     * StringUtils.isNumericSpace("")     = true
3851
     * StringUtils.isNumericSpace("  ")   = true
3852
     * StringUtils.isNumericSpace("123")  = true
3853
     * StringUtils.isNumericSpace("12 3") = true
3854
     * StringUtils.isNumericSpace("\u0967\u0968\u0969")   = true
3855
     * StringUtils.isNumericSpace("\u0967\u0968 \u0969")  = true
3856
     * StringUtils.isNumericSpace("ab2c") = false
3857
     * StringUtils.isNumericSpace("12-3") = false
3858
     * StringUtils.isNumericSpace("12.3") = false
3859
     * </pre>
3860
     *
3861
     * @param cs  the CharSequence to check, may be null
3862
     * @return {@code true} if only contains digits or space,
3863
     *  and is non-null
3864
     * @since 3.0 Changed signature from isNumericSpace(String) to isNumericSpace(CharSequence)
3865
     */
3866
    public static boolean isNumericSpace(final CharSequence cs) {
3867 1 1. isNumericSpace : negated conditional → KILLED
        if (cs == null) {
3868 1 1. isNumericSpace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumericSpace → KILLED
            return false;
3869
        }
3870
        final int sz = cs.length();
3871 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : changed conditional boundary → KILLED
        for (int i = 0; i < sz; i++) {
3872
            final char nowChar = cs.charAt(i);
3873 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : negated conditional → KILLED
            if (nowChar != ' ' && !Character.isDigit(nowChar)) {
3874 1 1. isNumericSpace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumericSpace → KILLED
                return false;
3875
            }
3876
        }
3877 1 1. isNumericSpace : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isNumericSpace → KILLED
        return true;
3878
    }
3879
3880
    /**
3881
     * Checks if the CharSequence contains only whitespace.
3882
     *
3883
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3884
     *
3885
     * <p>{@code null} will return {@code false}.
3886
     * An empty CharSequence (length()=0) will return {@code true}.</p>
3887
     *
3888
     * <pre>
3889
     * StringUtils.isWhitespace(null)   = false
3890
     * StringUtils.isWhitespace("")     = true
3891
     * StringUtils.isWhitespace("  ")   = true
3892
     * StringUtils.isWhitespace("abc")  = false
3893
     * StringUtils.isWhitespace("ab2c") = false
3894
     * StringUtils.isWhitespace("ab-c") = false
3895
     * </pre>
3896
     *
3897
     * @param cs  the CharSequence to check, may be null
3898
     * @return {@code true} if only contains whitespace, and is non-null
3899
     * @since 2.0
3900
     * @since 3.0 Changed signature from isWhitespace(String) to isWhitespace(CharSequence)
3901
     */
3902
    public static boolean isWhitespace(final CharSequence cs) {
3903 1 1. isWhitespace : negated conditional → KILLED
        if (cs == null) {
3904 1 1. isWhitespace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isWhitespace → KILLED
            return false;
3905
        }
3906
        final int sz = cs.length();
3907 2 1. isWhitespace : negated conditional → KILLED
2. isWhitespace : changed conditional boundary → KILLED
        for (int i = 0; i < sz; i++) {
3908 1 1. isWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(cs.charAt(i))) {
3909 1 1. isWhitespace : replaced boolean return with true for org/apache/commons/lang3/StringUtils::isWhitespace → KILLED
                return false;
3910
            }
3911
        }
3912 1 1. isWhitespace : replaced boolean return with false for org/apache/commons/lang3/StringUtils::isWhitespace → KILLED
        return true;
3913
    }
3914
3915
    /**
3916
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3917
     *
3918
     * <p>
3919
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3920
     * by empty strings.
3921
     * </p>
3922
     *
3923
     * <pre>
3924
     * StringUtils.join(null, *)             = null
3925
     * StringUtils.join([], *)               = ""
3926
     * StringUtils.join([null], *)           = ""
3927
     * StringUtils.join([false, false], ';') = "false;false"
3928
     * </pre>
3929
     *
3930
     * @param array
3931
     *            the array of values to join together, may be null
3932
     * @param delimiter
3933
     *            the separator character to use
3934
     * @return the joined String, {@code null} if null array input
3935
     * @since 3.12.0
3936
     */
3937
    public static String join(final boolean[] array, final char delimiter) {
3938 1 1. join : negated conditional → KILLED
        if (array == null) {
3939 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
3940
        }
3941 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
3942
    }
3943
3944
    /**
3945
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3946
     *
3947
     * <p>
3948
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3949
     * by empty strings.
3950
     * </p>
3951
     *
3952
     * <pre>
3953
     * StringUtils.join(null, *)                  = null
3954
     * StringUtils.join([], *)                    = ""
3955
     * StringUtils.join([null], *)                = ""
3956
     * StringUtils.join([true, false, true], ';') = "true;false;true"
3957
     * </pre>
3958
     *
3959
     * @param array
3960
     *            the array of values to join together, may be null
3961
     * @param delimiter
3962
     *            the separator character to use
3963
     * @param startIndex
3964
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
3965
     *            array
3966
     * @param endIndex
3967
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
3968
     *            the array
3969
     * @return the joined String, {@code null} if null array input
3970
     * @since 3.12.0
3971
     */
3972
    public static String join(final boolean[] array, final char delimiter, final int startIndex, final int endIndex) {
3973 1 1. join : negated conditional → KILLED
        if (array == null) {
3974 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
3975
        }
3976 3 1. join : Replaced integer subtraction with addition → KILLED
2. join : changed conditional boundary → KILLED
3. join : negated conditional → KILLED
        if (endIndex - startIndex <= 0) {
3977
            return EMPTY;
3978
        }
3979 3 1. join : Replaced integer multiplication with division → SURVIVED
2. join : Replaced integer addition with subtraction → SURVIVED
3. join : Replaced integer subtraction with addition → SURVIVED
        final StringBuilder stringBuilder = new StringBuilder(array.length * 5 + array.length - 1);
3980 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
3981
            stringBuilder
3982
                    .append(array[i])
3983
                    .append(delimiter);
3984
        }
3985 2 1. join : Replaced integer subtraction with addition → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
3986
    }
3987
3988
    /**
3989
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3990
     *
3991
     * <p>
3992
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3993
     * by empty strings.
3994
     * </p>
3995
     *
3996
     * <pre>
3997
     * StringUtils.join(null, *)         = null
3998
     * StringUtils.join([], *)           = ""
3999
     * StringUtils.join([null], *)       = ""
4000
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4001
     * StringUtils.join([1, 2, 3], null) = "123"
4002
     * </pre>
4003
     *
4004
     * @param array
4005
     *            the array of values to join together, may be null
4006
     * @param delimiter
4007
     *            the separator character to use
4008
     * @return the joined String, {@code null} if null array input
4009
     * @since 3.2
4010
     */
4011
    public static String join(final byte[] array, final char delimiter) {
4012 1 1. join : negated conditional → KILLED
        if (array == null) {
4013 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4014
        }
4015 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
4016
    }
4017
4018
    /**
4019
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4020
     *
4021
     * <p>
4022
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4023
     * by empty strings.
4024
     * </p>
4025
     *
4026
     * <pre>
4027
     * StringUtils.join(null, *)         = null
4028
     * StringUtils.join([], *)           = ""
4029
     * StringUtils.join([null], *)       = ""
4030
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4031
     * StringUtils.join([1, 2, 3], null) = "123"
4032
     * </pre>
4033
     *
4034
     * @param array
4035
     *            the array of values to join together, may be null
4036
     * @param delimiter
4037
     *            the separator character to use
4038
     * @param startIndex
4039
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4040
     *            array
4041
     * @param endIndex
4042
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4043
     *            the array
4044
     * @return the joined String, {@code null} if null array input
4045
     * @since 3.2
4046
     */
4047
    public static String join(final byte[] array, final char delimiter, final int startIndex, final int endIndex) {
4048 1 1. join : negated conditional → KILLED
        if (array == null) {
4049 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4050
        }
4051 3 1. join : changed conditional boundary → KILLED
2. join : Replaced integer subtraction with addition → KILLED
3. join : negated conditional → KILLED
        if (endIndex - startIndex <= 0) {
4052
            return EMPTY;
4053
        }
4054
        final StringBuilder stringBuilder = new StringBuilder();
4055 2 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4056
            stringBuilder
4057
                    .append(array[i])
4058
                    .append(delimiter);
4059
        }
4060 2 1. join : Replaced integer subtraction with addition → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4061
    }
4062
4063
    /**
4064
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4065
     *
4066
     * <p>
4067
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4068
     * by empty strings.
4069
     * </p>
4070
     *
4071
     * <pre>
4072
     * StringUtils.join(null, *)         = null
4073
     * StringUtils.join([], *)           = ""
4074
     * StringUtils.join([null], *)       = ""
4075
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4076
     * StringUtils.join([1, 2, 3], null) = "123"
4077
     * </pre>
4078
     *
4079
     * @param array
4080
     *            the array of values to join together, may be null
4081
     * @param delimiter
4082
     *            the separator character to use
4083
     * @return the joined String, {@code null} if null array input
4084
     * @since 3.2
4085
     */
4086
    public static String join(final char[] array, final char delimiter) {
4087 1 1. join : negated conditional → KILLED
        if (array == null) {
4088 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4089
        }
4090 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
4091
    }
4092
4093
    /**
4094
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4095
     *
4096
     * <p>
4097
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4098
     * by empty strings.
4099
     * </p>
4100
     *
4101
     * <pre>
4102
     * StringUtils.join(null, *)         = null
4103
     * StringUtils.join([], *)           = ""
4104
     * StringUtils.join([null], *)       = ""
4105
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4106
     * StringUtils.join([1, 2, 3], null) = "123"
4107
     * </pre>
4108
     *
4109
     * @param array
4110
     *            the array of values to join together, may be null
4111
     * @param delimiter
4112
     *            the separator character to use
4113
     * @param startIndex
4114
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4115
     *            array
4116
     * @param endIndex
4117
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4118
     *            the array
4119
     * @return the joined String, {@code null} if null array input
4120
     * @since 3.2
4121
     */
4122
    public static String join(final char[] array, final char delimiter, final int startIndex, final int endIndex) {
4123 1 1. join : negated conditional → KILLED
        if (array == null) {
4124 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4125
        }
4126 3 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
3. join : Replaced integer subtraction with addition → KILLED
        if (endIndex - startIndex <= 0) {
4127
            return EMPTY;
4128
        }
4129 2 1. join : Replaced integer subtraction with addition → SURVIVED
2. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder stringBuilder = new StringBuilder(array.length * 2 - 1);
4130 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4131
            stringBuilder
4132
                    .append(array[i])
4133
                    .append(delimiter);
4134
        }
4135 2 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
2. join : Replaced integer subtraction with addition → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4136
    }
4137
4138
    /**
4139
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4140
     *
4141
     * <p>
4142
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4143
     * by empty strings.
4144
     * </p>
4145
     *
4146
     * <pre>
4147
     * StringUtils.join(null, *)               = null
4148
     * StringUtils.join([], *)                 = ""
4149
     * StringUtils.join([null], *)             = ""
4150
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4151
     * StringUtils.join([1, 2, 3], null) = "123"
4152
     * </pre>
4153
     *
4154
     * @param array
4155
     *            the array of values to join together, may be null
4156
     * @param delimiter
4157
     *            the separator character to use
4158
     * @return the joined String, {@code null} if null array input
4159
     * @since 3.2
4160
     */
4161
    public static String join(final double[] array, final char delimiter) {
4162 1 1. join : negated conditional → KILLED
        if (array == null) {
4163 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4164
        }
4165 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
4166
    }
4167
4168
    /**
4169
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4170
     *
4171
     * <p>
4172
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4173
     * by empty strings.
4174
     * </p>
4175
     *
4176
     * <pre>
4177
     * StringUtils.join(null, *)               = null
4178
     * StringUtils.join([], *)                 = ""
4179
     * StringUtils.join([null], *)             = ""
4180
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4181
     * StringUtils.join([1, 2, 3], null) = "123"
4182
     * </pre>
4183
     *
4184
     * @param array
4185
     *            the array of values to join together, may be null
4186
     * @param delimiter
4187
     *            the separator character to use
4188
     * @param startIndex
4189
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4190
     *            array
4191
     * @param endIndex
4192
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4193
     *            the array
4194
     * @return the joined String, {@code null} if null array input
4195
     * @since 3.2
4196
     */
4197
    public static String join(final double[] array, final char delimiter, final int startIndex, final int endIndex) {
4198 1 1. join : negated conditional → KILLED
        if (array == null) {
4199 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4200
        }
4201 3 1. join : Replaced integer subtraction with addition → KILLED
2. join : negated conditional → KILLED
3. join : changed conditional boundary → KILLED
        if (endIndex - startIndex <= 0) {
4202
            return EMPTY;
4203
        }
4204
        final StringBuilder stringBuilder = new StringBuilder();
4205 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4206
            stringBuilder
4207
                    .append(array[i])
4208
                    .append(delimiter);
4209
        }
4210 2 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
2. join : Replaced integer subtraction with addition → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4211
    }
4212
4213
    /**
4214
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4215
     *
4216
     * <p>
4217
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4218
     * by empty strings.
4219
     * </p>
4220
     *
4221
     * <pre>
4222
     * StringUtils.join(null, *)               = null
4223
     * StringUtils.join([], *)                 = ""
4224
     * StringUtils.join([null], *)             = ""
4225
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4226
     * StringUtils.join([1, 2, 3], null) = "123"
4227
     * </pre>
4228
     *
4229
     * @param array
4230
     *            the array of values to join together, may be null
4231
     * @param delimiter
4232
     *            the separator character to use
4233
     * @return the joined String, {@code null} if null array input
4234
     * @since 3.2
4235
     */
4236
    public static String join(final float[] array, final char delimiter) {
4237 1 1. join : negated conditional → KILLED
        if (array == null) {
4238 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4239
        }
4240 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
4241
    }
4242
4243
    /**
4244
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4245
     *
4246
     * <p>
4247
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4248
     * by empty strings.
4249
     * </p>
4250
     *
4251
     * <pre>
4252
     * StringUtils.join(null, *)               = null
4253
     * StringUtils.join([], *)                 = ""
4254
     * StringUtils.join([null], *)             = ""
4255
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4256
     * StringUtils.join([1, 2, 3], null) = "123"
4257
     * </pre>
4258
     *
4259
     * @param array
4260
     *            the array of values to join together, may be null
4261
     * @param delimiter
4262
     *            the separator character to use
4263
     * @param startIndex
4264
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4265
     *            array
4266
     * @param endIndex
4267
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4268
     *            the array
4269
     * @return the joined String, {@code null} if null array input
4270
     * @since 3.2
4271
     */
4272
    public static String join(final float[] array, final char delimiter, final int startIndex, final int endIndex) {
4273 1 1. join : negated conditional → KILLED
        if (array == null) {
4274 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4275
        }
4276 3 1. join : Replaced integer subtraction with addition → KILLED
2. join : changed conditional boundary → KILLED
3. join : negated conditional → KILLED
        if (endIndex - startIndex <= 0) {
4277
            return EMPTY;
4278
        }
4279
        final StringBuilder stringBuilder = new StringBuilder();
4280 2 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4281
            stringBuilder
4282
                    .append(array[i])
4283
                    .append(delimiter);
4284
        }
4285 2 1. join : Replaced integer subtraction with addition → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4286
    }
4287
4288
    /**
4289
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4290
     *
4291
     * <p>
4292
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4293
     * by empty strings.
4294
     * </p>
4295
     *
4296
     * <pre>
4297
     * StringUtils.join(null, *)               = null
4298
     * StringUtils.join([], *)                 = ""
4299
     * StringUtils.join([null], *)             = ""
4300
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4301
     * StringUtils.join([1, 2, 3], null) = "123"
4302
     * </pre>
4303
     *
4304
     * @param array
4305
     *            the array of values to join together, may be null
4306
     * @param separator
4307
     *            the separator character to use
4308
     * @return the joined String, {@code null} if null array input
4309
     * @since 3.2
4310
     */
4311
    public static String join(final int[] array, final char separator) {
4312 1 1. join : negated conditional → KILLED
        if (array == null) {
4313 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4314
        }
4315 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, separator, 0, array.length);
4316
    }
4317
4318
    /**
4319
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4320
     *
4321
     * <p>
4322
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4323
     * by empty strings.
4324
     * </p>
4325
     *
4326
     * <pre>
4327
     * StringUtils.join(null, *)               = null
4328
     * StringUtils.join([], *)                 = ""
4329
     * StringUtils.join([null], *)             = ""
4330
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4331
     * StringUtils.join([1, 2, 3], null) = "123"
4332
     * </pre>
4333
     *
4334
     * @param array
4335
     *            the array of values to join together, may be null
4336
     * @param delimiter
4337
     *            the separator character to use
4338
     * @param startIndex
4339
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4340
     *            array
4341
     * @param endIndex
4342
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4343
     *            the array
4344
     * @return the joined String, {@code null} if null array input
4345
     * @since 3.2
4346
     */
4347
    public static String join(final int[] array, final char delimiter, final int startIndex, final int endIndex) {
4348 1 1. join : negated conditional → KILLED
        if (array == null) {
4349 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4350
        }
4351 3 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
3. join : Replaced integer subtraction with addition → KILLED
        if (endIndex - startIndex <= 0) {
4352
            return EMPTY;
4353
        }
4354
        final StringBuilder stringBuilder = new StringBuilder();
4355 2 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4356
            stringBuilder
4357
                    .append(array[i])
4358
                    .append(delimiter);
4359
        }
4360 2 1. join : Replaced integer subtraction with addition → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4361
    }
4362
4363
    /**
4364
     * Joins the elements of the provided {@link Iterable} into
4365
     * a single String containing the provided elements.
4366
     *
4367
     * <p>No delimiter is added before or after the list. Null objects or empty
4368
     * strings within the iteration are represented by empty strings.</p>
4369
     *
4370
     * <p>See the examples here: {@link #join(Object[],char)}.</p>
4371
     *
4372
     * @param iterable  the {@link Iterable} providing the values to join together, may be null
4373
     * @param separator  the separator character to use
4374
     * @return the joined String, {@code null} if null iterator input
4375
     * @since 2.3
4376
     */
4377
    public static String join(final Iterable<?> iterable, final char separator) {
4378 2 1. join : negated conditional → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return iterable != null ? join(iterable.iterator(), separator) : null;
4379
    }
4380
4381
    /**
4382
     * Joins the elements of the provided {@link Iterable} into
4383
     * a single String containing the provided elements.
4384
     *
4385
     * <p>No delimiter is added before or after the list.
4386
     * A {@code null} separator is the same as an empty String ("").</p>
4387
     *
4388
     * <p>See the examples here: {@link #join(Object[],String)}.</p>
4389
     *
4390
     * @param iterable  the {@link Iterable} providing the values to join together, may be null
4391
     * @param separator  the separator character to use, null treated as ""
4392
     * @return the joined String, {@code null} if null iterator input
4393
     * @since 2.3
4394
     */
4395
    public static String join(final Iterable<?> iterable, final String separator) {
4396 2 1. join : negated conditional → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return iterable != null ? join(iterable.iterator(), separator) : null;
4397
    }
4398
4399
    /**
4400
     * Joins the elements of the provided {@link Iterator} into
4401
     * a single String containing the provided elements.
4402
     *
4403
     * <p>No delimiter is added before or after the list. Null objects or empty
4404
     * strings within the iteration are represented by empty strings.</p>
4405
     *
4406
     * <p>See the examples here: {@link #join(Object[],char)}.</p>
4407
     *
4408
     * @param iterator  the {@link Iterator} of values to join together, may be null
4409
     * @param separator  the separator character to use
4410
     * @return the joined String, {@code null} if null iterator input
4411
     * @since 2.0
4412
     */
4413
    public static String join(final Iterator<?> iterator, final char separator) {
4414
        // handle null, zero and one elements before building a buffer
4415 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4416 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4417
        }
4418 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4419
            return EMPTY;
4420
        }
4421 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return Streams.of(iterator).collect(LangCollectors.joining(toStringOrEmpty(String.valueOf(separator)), EMPTY, EMPTY, StringUtils::toStringOrEmpty));
4422
    }
4423
4424
    /**
4425
     * Joins the elements of the provided {@link Iterator} into
4426
     * a single String containing the provided elements.
4427
     *
4428
     * <p>No delimiter is added before or after the list.
4429
     * A {@code null} separator is the same as an empty String ("").</p>
4430
     *
4431
     * <p>See the examples here: {@link #join(Object[],String)}.</p>
4432
     *
4433
     * @param iterator  the {@link Iterator} of values to join together, may be null
4434
     * @param separator  the separator character to use, null treated as ""
4435
     * @return the joined String, {@code null} if null iterator input
4436
     */
4437
    public static String join(final Iterator<?> iterator, final String separator) {
4438
        // handle null, zero and one elements before building a buffer
4439 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4440 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4441
        }
4442 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4443
            return EMPTY;
4444
        }
4445 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return Streams.of(iterator).collect(LangCollectors.joining(toStringOrEmpty(separator), EMPTY, EMPTY, StringUtils::toStringOrEmpty));
4446
    }
4447
4448
    /**
4449
     * Joins the elements of the provided {@link List} into a single String
4450
     * containing the provided list of elements.
4451
     *
4452
     * <p>No delimiter is added before or after the list.
4453
     * Null objects or empty strings within the array are represented by
4454
     * empty strings.</p>
4455
     *
4456
     * <pre>
4457
     * StringUtils.join(null, *)               = null
4458
     * StringUtils.join([], *)                 = ""
4459
     * StringUtils.join([null], *)             = ""
4460
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4461
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4462
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4463
     * </pre>
4464
     *
4465
     * @param list  the {@link List} of values to join together, may be null
4466
     * @param separator  the separator character to use
4467
     * @param startIndex the first index to start joining from.  It is
4468
     * an error to pass in a start index past the end of the list
4469
     * @param endIndex the index to stop joining from (exclusive). It is
4470
     * an error to pass in an end index past the end of the list
4471
     * @return the joined String, {@code null} if null list input
4472
     * @since 3.8
4473
     */
4474
    public static String join(final List<?> list, final char separator, final int startIndex, final int endIndex) {
4475 1 1. join : negated conditional → KILLED
        if (list == null) {
4476 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → SURVIVED
            return null;
4477
        }
4478 1 1. join : Replaced integer subtraction with addition → KILLED
        final int noOfItems = endIndex - startIndex;
4479 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4480
            return EMPTY;
4481
        }
4482
        final List<?> subList = list.subList(startIndex, endIndex);
4483 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(subList.iterator(), separator);
4484
    }
4485
4486
    /**
4487
     * Joins the elements of the provided {@link List} into a single String
4488
     * containing the provided list of elements.
4489
     *
4490
     * <p>No delimiter is added before or after the list.
4491
     * Null objects or empty strings within the array are represented by
4492
     * empty strings.</p>
4493
     *
4494
     * <pre>
4495
     * StringUtils.join(null, *)               = null
4496
     * StringUtils.join([], *)                 = ""
4497
     * StringUtils.join([null], *)             = ""
4498
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4499
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4500
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4501
     * </pre>
4502
     *
4503
     * @param list  the {@link List} of values to join together, may be null
4504
     * @param separator  the separator character to use
4505
     * @param startIndex the first index to start joining from.  It is
4506
     * an error to pass in a start index past the end of the list
4507
     * @param endIndex the index to stop joining from (exclusive). It is
4508
     * an error to pass in an end index past the end of the list
4509
     * @return the joined String, {@code null} if null list input
4510
     * @since 3.8
4511
     */
4512
    public static String join(final List<?> list, final String separator, final int startIndex, final int endIndex) {
4513 1 1. join : negated conditional → KILLED
        if (list == null) {
4514 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → SURVIVED
            return null;
4515
        }
4516 1 1. join : Replaced integer subtraction with addition → KILLED
        final int noOfItems = endIndex - startIndex;
4517 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4518
            return EMPTY;
4519
        }
4520
        final List<?> subList = list.subList(startIndex, endIndex);
4521 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(subList.iterator(), separator);
4522
    }
4523
4524
    /**
4525
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4526
     *
4527
     * <p>
4528
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4529
     * by empty strings.
4530
     * </p>
4531
     *
4532
     * <pre>
4533
     * StringUtils.join(null, *)               = null
4534
     * StringUtils.join([], *)                 = ""
4535
     * StringUtils.join([null], *)             = ""
4536
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4537
     * StringUtils.join([1, 2, 3], null) = "123"
4538
     * </pre>
4539
     *
4540
     * @param array
4541
     *            the array of values to join together, may be null
4542
     * @param separator
4543
     *            the separator character to use
4544
     * @return the joined String, {@code null} if null array input
4545
     * @since 3.2
4546
     */
4547
    public static String join(final long[] array, final char separator) {
4548 1 1. join : negated conditional → KILLED
        if (array == null) {
4549 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4550
        }
4551 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, separator, 0, array.length);
4552
    }
4553
4554
    /**
4555
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4556
     *
4557
     * <p>
4558
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4559
     * by empty strings.
4560
     * </p>
4561
     *
4562
     * <pre>
4563
     * StringUtils.join(null, *)               = null
4564
     * StringUtils.join([], *)                 = ""
4565
     * StringUtils.join([null], *)             = ""
4566
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4567
     * StringUtils.join([1, 2, 3], null) = "123"
4568
     * </pre>
4569
     *
4570
     * @param array
4571
     *            the array of values to join together, may be null
4572
     * @param delimiter
4573
     *            the separator character to use
4574
     * @param startIndex
4575
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4576
     *            array
4577
     * @param endIndex
4578
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4579
     *            the array
4580
     * @return the joined String, {@code null} if null array input
4581
     * @since 3.2
4582
     */
4583
    public static String join(final long[] array, final char delimiter, final int startIndex, final int endIndex) {
4584 1 1. join : negated conditional → KILLED
        if (array == null) {
4585 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4586
        }
4587 3 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
3. join : Replaced integer subtraction with addition → KILLED
        if (endIndex - startIndex <= 0) {
4588
            return EMPTY;
4589
        }
4590
        final StringBuilder stringBuilder = new StringBuilder();
4591 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4592
            stringBuilder
4593
                    .append(array[i])
4594
                    .append(delimiter);
4595
        }
4596 2 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
2. join : Replaced integer subtraction with addition → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4597
    }
4598
4599
    /**
4600
     * Joins the elements of the provided array into a single String
4601
     * containing the provided list of elements.
4602
     *
4603
     * <p>No delimiter is added before or after the list.
4604
     * Null objects or empty strings within the array are represented by
4605
     * empty strings.</p>
4606
     *
4607
     * <pre>
4608
     * StringUtils.join(null, *)               = null
4609
     * StringUtils.join([], *)                 = ""
4610
     * StringUtils.join([null], *)             = ""
4611
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4612
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4613
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4614
     * </pre>
4615
     *
4616
     * @param array  the array of values to join together, may be null
4617
     * @param delimiter  the separator character to use
4618
     * @return the joined String, {@code null} if null array input
4619
     * @since 2.0
4620
     */
4621
    public static String join(final Object[] array, final char delimiter) {
4622 1 1. join : negated conditional → KILLED
        if (array == null) {
4623 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4624
        }
4625 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
4626
    }
4627
4628
    /**
4629
     * Joins the elements of the provided array into a single String
4630
     * containing the provided list of elements.
4631
     *
4632
     * <p>No delimiter is added before or after the list.
4633
     * Null objects or empty strings within the array are represented by
4634
     * empty strings.</p>
4635
     *
4636
     * <pre>
4637
     * StringUtils.join(null, *)               = null
4638
     * StringUtils.join([], *)                 = ""
4639
     * StringUtils.join([null], *)             = ""
4640
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4641
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4642
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4643
     * </pre>
4644
     *
4645
     * @param array  the array of values to join together, may be null
4646
     * @param delimiter  the separator character to use
4647
     * @param startIndex the first index to start joining from.  It is
4648
     * an error to pass in a start index past the end of the array
4649
     * @param endIndex the index to stop joining from (exclusive). It is
4650
     * an error to pass in an end index past the end of the array
4651
     * @return the joined String, {@code null} if null array input
4652
     * @since 2.0
4653
     */
4654
    public static String join(final Object[] array, final char delimiter, final int startIndex, final int endIndex) {
4655 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, String.valueOf(delimiter), startIndex, endIndex);
4656
    }
4657
4658
    /**
4659
     * Joins the elements of the provided array into a single String
4660
     * containing the provided list of elements.
4661
     *
4662
     * <p>No delimiter is added before or after the list.
4663
     * A {@code null} separator is the same as an empty String ("").
4664
     * Null objects or empty strings within the array are represented by
4665
     * empty strings.</p>
4666
     *
4667
     * <pre>
4668
     * StringUtils.join(null, *)                = null
4669
     * StringUtils.join([], *)                  = ""
4670
     * StringUtils.join([null], *)              = ""
4671
     * StringUtils.join(["a", "b", "c"], "--")  = "a--b--c"
4672
     * StringUtils.join(["a", "b", "c"], null)  = "abc"
4673
     * StringUtils.join(["a", "b", "c"], "")    = "abc"
4674
     * StringUtils.join([null, "", "a"], ',')   = ",,a"
4675
     * </pre>
4676
     *
4677
     * @param array  the array of values to join together, may be null
4678
     * @param delimiter  the separator character to use, null treated as ""
4679
     * @return the joined String, {@code null} if null array input
4680
     */
4681
    public static String join(final Object[] array, final String delimiter) {
4682 2 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
2. join : negated conditional → KILLED
        return array != null ? join(array, toStringOrEmpty(delimiter), 0, array.length) : null;
4683
    }
4684
4685
    /**
4686
     * Joins the elements of the provided array into a single String
4687
     * containing the provided list of elements.
4688
     *
4689
     * <p>No delimiter is added before or after the list.
4690
     * A {@code null} separator is the same as an empty String ("").
4691
     * Null objects or empty strings within the array are represented by
4692
     * empty strings.</p>
4693
     *
4694
     * <pre>
4695
     * StringUtils.join(null, *, *, *)                = null
4696
     * StringUtils.join([], *, *, *)                  = ""
4697
     * StringUtils.join([null], *, *, *)              = ""
4698
     * StringUtils.join(["a", "b", "c"], "--", 0, 3)  = "a--b--c"
4699
     * StringUtils.join(["a", "b", "c"], "--", 1, 3)  = "b--c"
4700
     * StringUtils.join(["a", "b", "c"], "--", 2, 3)  = "c"
4701
     * StringUtils.join(["a", "b", "c"], "--", 2, 2)  = ""
4702
     * StringUtils.join(["a", "b", "c"], null, 0, 3)  = "abc"
4703
     * StringUtils.join(["a", "b", "c"], "", 0, 3)    = "abc"
4704
     * StringUtils.join([null, "", "a"], ',', 0, 3)   = ",,a"
4705
     * </pre>
4706
     *
4707
     * @param array  the array of values to join together, may be null
4708
     * @param delimiter  the separator character to use, null treated as ""
4709
     * @param startIndex the first index to start joining from.
4710
     * @param endIndex the index to stop joining from (exclusive).
4711
     * @return the joined String, {@code null} if null array input; or the empty string
4712
     * if {@code endIndex - startIndex <= 0}. The number of joined entries is given by
4713
     * {@code endIndex - startIndex}
4714
     * @throws ArrayIndexOutOfBoundsException ife<br>
4715
     * {@code startIndex < 0} or <br>
4716
     * {@code startIndex >= array.length()} or <br>
4717
     * {@code endIndex < 0} or <br>
4718
     * {@code endIndex > array.length()}
4719
     */
4720
    public static String join(final Object[] array, final String delimiter, final int startIndex, final int endIndex) {
4721 3 1. join : Replaced integer subtraction with addition → SURVIVED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
3. join : negated conditional → KILLED
        return array != null ? Streams.of(array).skip(startIndex).limit(Math.max(0, endIndex - startIndex))
4722
            .collect(LangCollectors.joining(delimiter, EMPTY, EMPTY, StringUtils::toStringOrEmpty)) : null;
4723
    }
4724
4725
    /**
4726
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4727
     *
4728
     * <p>
4729
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4730
     * by empty strings.
4731
     * </p>
4732
     *
4733
     * <pre>
4734
     * StringUtils.join(null, *)               = null
4735
     * StringUtils.join([], *)                 = ""
4736
     * StringUtils.join([null], *)             = ""
4737
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4738
     * StringUtils.join([1, 2, 3], null) = "123"
4739
     * </pre>
4740
     *
4741
     * @param array
4742
     *            the array of values to join together, may be null
4743
     * @param delimiter
4744
     *            the separator character to use
4745
     * @return the joined String, {@code null} if null array input
4746
     * @since 3.2
4747
     */
4748
    public static String join(final short[] array, final char delimiter) {
4749 1 1. join : negated conditional → KILLED
        if (array == null) {
4750 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4751
        }
4752 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(array, delimiter, 0, array.length);
4753
    }
4754
4755
    /**
4756
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4757
     *
4758
     * <p>
4759
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4760
     * by empty strings.
4761
     * </p>
4762
     *
4763
     * <pre>
4764
     * StringUtils.join(null, *)               = null
4765
     * StringUtils.join([], *)                 = ""
4766
     * StringUtils.join([null], *)             = ""
4767
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4768
     * StringUtils.join([1, 2, 3], null) = "123"
4769
     * </pre>
4770
     *
4771
     * @param array
4772
     *            the array of values to join together, may be null
4773
     * @param delimiter
4774
     *            the separator character to use
4775
     * @param startIndex
4776
     *            the first index to start joining from. It is an error to pass in a start index past the end of the
4777
     *            array
4778
     * @param endIndex
4779
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4780
     *            the array
4781
     * @return the joined String, {@code null} if null array input
4782
     * @since 3.2
4783
     */
4784
    public static String join(final short[] array, final char delimiter, final int startIndex, final int endIndex) {
4785 1 1. join : negated conditional → KILLED
        if (array == null) {
4786 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
            return null;
4787
        }
4788 3 1. join : Replaced integer subtraction with addition → KILLED
2. join : negated conditional → KILLED
3. join : changed conditional boundary → KILLED
        if (endIndex - startIndex <= 0) {
4789
            return EMPTY;
4790
        }
4791
        final StringBuilder stringBuilder = new StringBuilder();
4792 2 1. join : negated conditional → KILLED
2. join : changed conditional boundary → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4793
            stringBuilder
4794
                    .append(array[i])
4795
                    .append(delimiter);
4796
        }
4797 2 1. join : Replaced integer subtraction with addition → KILLED
2. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return stringBuilder.substring(0, stringBuilder.length() - 1);
4798
    }
4799
4800
    /**
4801
     * Joins the elements of the provided array into a single String
4802
     * containing the provided list of elements.
4803
     *
4804
     * <p>No separator is added to the joined String.
4805
     * Null objects or empty strings within the array are represented by
4806
     * empty strings.</p>
4807
     *
4808
     * <pre>
4809
     * StringUtils.join(null)            = null
4810
     * StringUtils.join([])              = ""
4811
     * StringUtils.join([null])          = ""
4812
     * StringUtils.join(["a", "b", "c"]) = "abc"
4813
     * StringUtils.join([null, "", "a"]) = "a"
4814
     * </pre>
4815
     *
4816
     * @param <T> the specific type of values to join together
4817
     * @param elements  the values to join together, may be null
4818
     * @return the joined String, {@code null} if null array input
4819
     * @since 2.0
4820
     * @since 3.0 Changed signature to use varargs
4821
     */
4822
    @SafeVarargs
4823
    public static <T> String join(final T... elements) {
4824 1 1. join : replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED
        return join(elements, null);
4825
    }
4826
4827
    /**
4828
     * Joins the elements of the provided varargs into a
4829
     * single String containing the provided elements.
4830
     *
4831
     * <p>No delimiter is added before or after the list.
4832
     * {@code null} elements and separator are treated as empty Strings ("").</p>
4833
     *
4834
     * <pre>
4835
     * StringUtils.joinWith(",", {"a", "b"})        = "a,b"
4836
     * StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
4837
     * StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
4838
     * StringUtils.joinWith(null, {"a", "b"})       = "ab"
4839
     * </pre>
4840
     *
4841
     * @param delimiter the separator character to use, null treated as ""
4842
     * @param array the varargs providing the values to join together. {@code null} elements are treated as ""
4843
     * @return the joined String.
4844
     * @throws IllegalArgumentException if a null varargs is provided
4845
     * @since 3.5
4846
     */
4847
    public static String joinWith(final String delimiter, final Object... array) {
4848 1 1. joinWith : negated conditional → KILLED
        if (array == null) {
4849
            throw new IllegalArgumentException("Object varargs must not be null");
4850
        }
4851 1 1. joinWith : replaced return value with "" for org/apache/commons/lang3/StringUtils::joinWith → KILLED
        return join(array, delimiter);
4852
    }
4853
4854
    /**
4855
     * Finds the last index within a CharSequence, handling {@code null}.
4856
     * This method uses {@link String#lastIndexOf(String)} if possible.
4857
     *
4858
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
4859
     *
4860
     * <pre>
4861
     * StringUtils.lastIndexOf(null, *)          = -1
4862
     * StringUtils.lastIndexOf(*, null)          = -1
4863
     * StringUtils.lastIndexOf("", "")           = 0
4864
     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
4865
     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
4866
     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
4867
     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
4868
     * </pre>
4869
     *
4870
     * @param seq  the CharSequence to check, may be null
4871
     * @param searchSeq  the CharSequence to find, may be null
4872
     * @return the last index of the search String,
4873
     *  -1 if no match or {@code null} string input
4874
     * @since 2.0
4875
     * @since 3.0 Changed signature from lastIndexOf(String, String) to lastIndexOf(CharSequence, CharSequence)
4876
     */
4877
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq) {
4878 1 1. lastIndexOf : negated conditional → KILLED
        if (seq == null) {
4879 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
            return INDEX_NOT_FOUND;
4880
        }
4881 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, seq.length());
4882
    }
4883
4884
    /**
4885
     * Finds the last index within a CharSequence, handling {@code null}.
4886
     * This method uses {@link String#lastIndexOf(String, int)} if possible.
4887
     *
4888
     * <p>A {@code null} CharSequence will return {@code -1}.
4889
     * A negative start position returns {@code -1}.
4890
     * An empty ("") search CharSequence always matches unless the start position is negative.
4891
     * A start position greater than the string length searches the whole string.
4892
     * The search starts at the startPos and works backwards; matches starting after the start
4893
     * position are ignored.
4894
     * </p>
4895
     *
4896
     * <pre>
4897
     * StringUtils.lastIndexOf(null, *, *)          = -1
4898
     * StringUtils.lastIndexOf(*, null, *)          = -1
4899
     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
4900
     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
4901
     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
4902
     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
4903
     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
4904
     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
4905
     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
4906
     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
4907
     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
4908
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
4909
     * </pre>
4910
     *
4911
     * @param seq  the CharSequence to check, may be null
4912
     * @param searchSeq  the CharSequence to find, may be null
4913
     * @param startPos  the start position, negative treated as zero
4914
     * @return the last index of the search CharSequence (always &le; startPos),
4915
     *  -1 if no match or {@code null} string input
4916
     * @since 2.0
4917
     * @since 3.0 Changed signature from lastIndexOf(String, String, int) to lastIndexOf(CharSequence, CharSequence, int)
4918
     */
4919
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
4920 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, startPos);
4921
    }
4922
4923
    /**
4924
     * Returns the index within {@code seq} of the last occurrence of
4925
     * the specified character. For values of {@code searchChar} in the
4926
     * range from 0 to 0xFFFF (inclusive), the index (in Unicode code
4927
     * units) returned is the largest value <i>k</i> such that:
4928
     * <blockquote><pre>
4929
     * this.charAt(<i>k</i>) == searchChar
4930
     * </pre></blockquote>
4931
     * is true. For other values of {@code searchChar}, it is the
4932
     * largest value <i>k</i> such that:
4933
     * <blockquote><pre>
4934
     * this.codePointAt(<i>k</i>) == searchChar
4935
     * </pre></blockquote>
4936
     * is true.  In either case, if no such character occurs in this
4937
     * string, then {@code -1} is returned. Furthermore, a {@code null} or empty ("")
4938
     * {@link CharSequence} will return {@code -1}. The
4939
     * {@code seq} {@link CharSequence} object is searched backwards
4940
     * starting at the last character.
4941
     *
4942
     * <pre>
4943
     * StringUtils.lastIndexOf(null, *)         = -1
4944
     * StringUtils.lastIndexOf("", *)           = -1
4945
     * StringUtils.lastIndexOf("aabaabaa", 'a') = 7
4946
     * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
4947
     * </pre>
4948
     *
4949
     * @param seq  the {@link CharSequence} to check, may be null
4950
     * @param searchChar  the character to find
4951
     * @return the last index of the search character,
4952
     *  -1 if no match or {@code null} string input
4953
     * @since 2.0
4954
     * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
4955
     * @since 3.6 Updated {@link CharSequenceUtils} call to behave more like {@link String}
4956
     */
4957
    public static int lastIndexOf(final CharSequence seq, final int searchChar) {
4958 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
4959 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
            return INDEX_NOT_FOUND;
4960
        }
4961 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, seq.length());
4962
    }
4963
4964
    /**
4965
     * Returns the index within {@code seq} of the last occurrence of
4966
     * the specified character, searching backward starting at the
4967
     * specified index. For values of {@code searchChar} in the range
4968
     * from 0 to 0xFFFF (inclusive), the index returned is the largest
4969
     * value <i>k</i> such that:
4970
     * <blockquote><pre>
4971
     * (this.charAt(<i>k</i>) == searchChar) &amp;&amp; (<i>k</i> &lt;= startPos)
4972
     * </pre></blockquote>
4973
     * is true. For other values of {@code searchChar}, it is the
4974
     * largest value <i>k</i> such that:
4975
     * <blockquote><pre>
4976
     * (this.codePointAt(<i>k</i>) == searchChar) &amp;&amp; (<i>k</i> &lt;= startPos)
4977
     * </pre></blockquote>
4978
     * is true. In either case, if no such character occurs in {@code seq}
4979
     * at or before position {@code startPos}, then
4980
     * {@code -1} is returned. Furthermore, a {@code null} or empty ("")
4981
     * {@link CharSequence} will return {@code -1}. A start position greater
4982
     * than the string length searches the whole string.
4983
     * The search starts at the {@code startPos} and works backwards;
4984
     * matches starting after the start position are ignored.
4985
     *
4986
     * <p>All indices are specified in {@code char} values
4987
     * (Unicode code units).
4988
     *
4989
     * <pre>
4990
     * StringUtils.lastIndexOf(null, *, *)          = -1
4991
     * StringUtils.lastIndexOf("", *,  *)           = -1
4992
     * StringUtils.lastIndexOf("aabaabaa", 'b', 8)  = 5
4993
     * StringUtils.lastIndexOf("aabaabaa", 'b', 4)  = 2
4994
     * StringUtils.lastIndexOf("aabaabaa", 'b', 0)  = -1
4995
     * StringUtils.lastIndexOf("aabaabaa", 'b', 9)  = 5
4996
     * StringUtils.lastIndexOf("aabaabaa", 'b', -1) = -1
4997
     * StringUtils.lastIndexOf("aabaabaa", 'a', 0)  = 0
4998
     * </pre>
4999
     *
5000
     * @param seq  the CharSequence to check, may be null
5001
     * @param searchChar  the character to find
5002
     * @param startPos  the start position
5003
     * @return the last index of the search character (always &le; startPos),
5004
     *  -1 if no match or {@code null} string input
5005
     * @since 2.0
5006
     * @since 3.0 Changed signature from lastIndexOf(String, int, int) to lastIndexOf(CharSequence, int, int)
5007
     */
5008
    public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos) {
5009 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
5010 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
            return INDEX_NOT_FOUND;
5011
        }
5012 1 1. lastIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, startPos);
5013
    }
5014
5015
    /**
5016
     * Find the latest index of any substring in a set of potential substrings.
5017
     *
5018
     * <p>A {@code null} CharSequence will return {@code -1}.
5019
     * A {@code null} search array will return {@code -1}.
5020
     * A {@code null} or zero length search array entry will be ignored,
5021
     * but a search array containing "" will return the length of {@code str}
5022
     * if {@code str} is not null. This method uses {@link String#indexOf(String)} if possible</p>
5023
     *
5024
     * <pre>
5025
     * StringUtils.lastIndexOfAny(null, *)                    = -1
5026
     * StringUtils.lastIndexOfAny(*, null)                    = -1
5027
     * StringUtils.lastIndexOfAny(*, [])                      = -1
5028
     * StringUtils.lastIndexOfAny(*, [null])                  = -1
5029
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab", "cd"]) = 6
5030
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd", "ab"]) = 6
5031
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn", "op"]) = -1
5032
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn", "op"]) = -1
5033
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn", ""])   = 10
5034
     * </pre>
5035
     *
5036
     * @param str  the CharSequence to check, may be null
5037
     * @param searchStrs  the CharSequences to search for, may be null
5038
     * @return the last index of any of the CharSequences, -1 if no match
5039
     * @since 3.0 Changed signature from lastIndexOfAny(String, String[]) to lastIndexOfAny(CharSequence, CharSequence)
5040
     */
5041
    public static int lastIndexOfAny(final CharSequence str, final CharSequence... searchStrs) {
5042 2 1. lastIndexOfAny : negated conditional → KILLED
2. lastIndexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
5043 1 1. lastIndexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfAny → KILLED
            return INDEX_NOT_FOUND;
5044
        }
5045
        int ret = INDEX_NOT_FOUND;
5046
        int tmp;
5047
        for (final CharSequence search : searchStrs) {
5048 1 1. lastIndexOfAny : negated conditional → KILLED
            if (search == null) {
5049
                continue;
5050
            }
5051
            tmp = CharSequenceUtils.lastIndexOf(str, search, str.length());
5052 2 1. lastIndexOfAny : changed conditional boundary → SURVIVED
2. lastIndexOfAny : negated conditional → KILLED
            if (tmp > ret) {
5053
                ret = tmp;
5054
            }
5055
        }
5056 1 1. lastIndexOfAny : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfAny → KILLED
        return ret;
5057
    }
5058
5059
    /**
5060
     * Case in-sensitive find of the last index within a CharSequence.
5061
     *
5062
     * <p>A {@code null} CharSequence will return {@code -1}.
5063
     * A negative start position returns {@code -1}.
5064
     * An empty ("") search CharSequence always matches unless the start position is negative.
5065
     * A start position greater than the string length searches the whole string.</p>
5066
     *
5067
     * <pre>
5068
     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
5069
     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
5070
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
5071
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
5072
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
5073
     * </pre>
5074
     *
5075
     * @param str  the CharSequence to check, may be null
5076
     * @param searchStr  the CharSequence to find, may be null
5077
     * @return the first index of the search CharSequence,
5078
     *  -1 if no match or {@code null} string input
5079
     * @since 2.5
5080
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String) to lastIndexOfIgnoreCase(CharSequence, CharSequence)
5081
     */
5082
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
5083 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
5084 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
            return INDEX_NOT_FOUND;
5085
        }
5086 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
        return lastIndexOfIgnoreCase(str, searchStr, str.length());
5087
    }
5088
5089
    /**
5090
     * Case in-sensitive find of the last index within a CharSequence
5091
     * from the specified position.
5092
     *
5093
     * <p>A {@code null} CharSequence will return {@code -1}.
5094
     * A negative start position returns {@code -1}.
5095
     * An empty ("") search CharSequence always matches unless the start position is negative.
5096
     * A start position greater than the string length searches the whole string.
5097
     * The search starts at the startPos and works backwards; matches starting after the start
5098
     * position are ignored.
5099
     * </p>
5100
     *
5101
     * <pre>
5102
     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
5103
     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
5104
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
5105
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
5106
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
5107
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
5108
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
5109
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
5110
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
5111
     * </pre>
5112
     *
5113
     * @param str  the CharSequence to check, may be null
5114
     * @param searchStr  the CharSequence to find, may be null
5115
     * @param startPos  the start position
5116
     * @return the last index of the search CharSequence (always &le; startPos),
5117
     *  -1 if no match or {@code null} input
5118
     * @since 2.5
5119
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String, int) to lastIndexOfIgnoreCase(CharSequence, CharSequence, int)
5120
     */
5121
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
5122 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
5123 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
            return INDEX_NOT_FOUND;
5124
        }
5125
        final int searchStrLength = searchStr.length();
5126
        final int strLength = str.length();
5127 3 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. lastIndexOfIgnoreCase : changed conditional boundary → SURVIVED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos > strLength - searchStrLength) {
5128 1 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
            startPos = strLength - searchStrLength;
5129
        }
5130 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
5131 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
            return INDEX_NOT_FOUND;
5132
        }
5133 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (searchStrLength == 0) {
5134 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
            return startPos;
5135
        }
5136
5137 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i >= 0; i--) {
5138 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStrLength)) {
5139 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
                return i;
5140
            }
5141
        }
5142 1 1. lastIndexOfIgnoreCase : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED
        return INDEX_NOT_FOUND;
5143
    }
5144
5145
    /**
5146
     * Finds the n-th last index within a String, handling {@code null}.
5147
     * This method uses {@link String#lastIndexOf(String)}.
5148
     *
5149
     * <p>A {@code null} String will return {@code -1}.</p>
5150
     *
5151
     * <pre>
5152
     * StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
5153
     * StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
5154
     * StringUtils.lastOrdinalIndexOf("", "", *)           = 0
5155
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
5156
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
5157
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
5158
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
5159
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
5160
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
5161
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
5162
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
5163
     * </pre>
5164
     *
5165
     * <p>Note that 'tail(CharSequence str, int n)' may be implemented as: </p>
5166
     *
5167
     * <pre>
5168
     *   str.substring(lastOrdinalIndexOf(str, "\n", n) + 1)
5169
     * </pre>
5170
     *
5171
     * @param str  the CharSequence to check, may be null
5172
     * @param searchStr  the CharSequence to find, may be null
5173
     * @param ordinal  the n-th last {@code searchStr} to find
5174
     * @return the n-th last index of the search CharSequence,
5175
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
5176
     * @since 2.5
5177
     * @since 3.0 Changed signature from lastOrdinalIndexOf(String, String, int) to lastOrdinalIndexOf(CharSequence, CharSequence, int)
5178
     */
5179
    public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
5180 1 1. lastOrdinalIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastOrdinalIndexOf → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, true);
5181
    }
5182
5183
    /**
5184
     * Gets the leftmost {@code len} characters of a String.
5185
     *
5186
     * <p>If {@code len} characters are not available, or the
5187
     * String is {@code null}, the String will be returned without
5188
     * an exception. An empty String is returned if len is negative.</p>
5189
     *
5190
     * <pre>
5191
     * StringUtils.left(null, *)    = null
5192
     * StringUtils.left(*, -ve)     = ""
5193
     * StringUtils.left("", *)      = ""
5194
     * StringUtils.left("abc", 0)   = ""
5195
     * StringUtils.left("abc", 2)   = "ab"
5196
     * StringUtils.left("abc", 4)   = "abc"
5197
     * </pre>
5198
     *
5199
     * @param str  the String to get the leftmost characters from, may be null
5200
     * @param len  the length of the required String
5201
     * @return the leftmost characters, {@code null} if null String input
5202
     */
5203
    public static String left(final String str, final int len) {
5204 1 1. left : negated conditional → KILLED
        if (str == null) {
5205 1 1. left : replaced return value with "" for org/apache/commons/lang3/StringUtils::left → KILLED
            return null;
5206
        }
5207 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (len < 0) {
5208
            return EMPTY;
5209
        }
5210 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (str.length() <= len) {
5211 1 1. left : replaced return value with "" for org/apache/commons/lang3/StringUtils::left → KILLED
            return str;
5212
        }
5213 1 1. left : replaced return value with "" for org/apache/commons/lang3/StringUtils::left → KILLED
        return str.substring(0, len);
5214
    }
5215
5216
    /**
5217
     * Left pad a String with spaces (' ').
5218
     *
5219
     * <p>The String is padded to the size of {@code size}.</p>
5220
     *
5221
     * <pre>
5222
     * StringUtils.leftPad(null, *)   = null
5223
     * StringUtils.leftPad("", 3)     = "   "
5224
     * StringUtils.leftPad("bat", 3)  = "bat"
5225
     * StringUtils.leftPad("bat", 5)  = "  bat"
5226
     * StringUtils.leftPad("bat", 1)  = "bat"
5227
     * StringUtils.leftPad("bat", -1) = "bat"
5228
     * </pre>
5229
     *
5230
     * @param str  the String to pad out, may be null
5231
     * @param size  the size to pad to
5232
     * @return left padded String or original String if no padding is necessary,
5233
     *  {@code null} if null String input
5234
     */
5235
    public static String leftPad(final String str, final int size) {
5236 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
        return leftPad(str, size, ' ');
5237
    }
5238
5239
    /**
5240
     * Left pad a String with a specified character.
5241
     *
5242
     * <p>Pad to a size of {@code size}.</p>
5243
     *
5244
     * <pre>
5245
     * StringUtils.leftPad(null, *, *)     = null
5246
     * StringUtils.leftPad("", 3, 'z')     = "zzz"
5247
     * StringUtils.leftPad("bat", 3, 'z')  = "bat"
5248
     * StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
5249
     * StringUtils.leftPad("bat", 1, 'z')  = "bat"
5250
     * StringUtils.leftPad("bat", -1, 'z') = "bat"
5251
     * </pre>
5252
     *
5253
     * @param str  the String to pad out, may be null
5254
     * @param size  the size to pad to
5255
     * @param padChar  the character to pad with
5256
     * @return left padded String or original String if no padding is necessary,
5257
     *  {@code null} if null String input
5258
     * @since 2.0
5259
     */
5260
    public static String leftPad(final String str, final int size, final char padChar) {
5261 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
5262 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return null;
5263
        }
5264 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
5265 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
5266 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return str; // returns original String when possible
5267
        }
5268 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
5269 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return leftPad(str, size, String.valueOf(padChar));
5270
        }
5271 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
        return repeat(padChar, pads).concat(str);
5272
    }
5273
5274
    /**
5275
     * Left pad a String with a specified String.
5276
     *
5277
     * <p>Pad to a size of {@code size}.</p>
5278
     *
5279
     * <pre>
5280
     * StringUtils.leftPad(null, *, *)      = null
5281
     * StringUtils.leftPad("", 3, "z")      = "zzz"
5282
     * StringUtils.leftPad("bat", 3, "yz")  = "bat"
5283
     * StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
5284
     * StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
5285
     * StringUtils.leftPad("bat", 1, "yz")  = "bat"
5286
     * StringUtils.leftPad("bat", -1, "yz") = "bat"
5287
     * StringUtils.leftPad("bat", 5, null)  = "  bat"
5288
     * StringUtils.leftPad("bat", 5, "")    = "  bat"
5289
     * </pre>
5290
     *
5291
     * @param str  the String to pad out, may be null
5292
     * @param size  the size to pad to
5293
     * @param padStr  the String to pad with, null or empty treated as single space
5294
     * @return left padded String or original String if no padding is necessary,
5295
     *  {@code null} if null String input
5296
     */
5297
    public static String leftPad(final String str, final int size, String padStr) {
5298 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
5299 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return null;
5300
        }
5301 1 1. leftPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
5302
            padStr = SPACE;
5303
        }
5304
        final int padLen = padStr.length();
5305
        final int strLen = str.length();
5306 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
5307 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
5308 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return str; // returns original String when possible
5309
        }
5310 3 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
3. leftPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
5311 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return leftPad(str, size, padStr.charAt(0));
5312
        }
5313
5314 1 1. leftPad : negated conditional → KILLED
        if (pads == padLen) {
5315 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return padStr.concat(str);
5316
        }
5317 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads < padLen) {
5318 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
            return padStr.substring(0, pads).concat(str);
5319
        }
5320
        final char[] padding = new char[pads];
5321
        final char[] padChars = padStr.toCharArray();
5322 2 1. leftPad : changed conditional boundary → KILLED
2. leftPad : negated conditional → KILLED
        for (int i = 0; i < pads; i++) {
5323 1 1. leftPad : Replaced integer modulus with multiplication → KILLED
            padding[i] = padChars[i % padLen];
5324
        }
5325 1 1. leftPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED
        return new String(padding).concat(str);
5326
    }
5327
5328
    /**
5329
     * Gets a CharSequence length or {@code 0} if the CharSequence is
5330
     * {@code null}.
5331
     *
5332
     * @param cs
5333
     *            a CharSequence or {@code null}
5334
     * @return CharSequence length or {@code 0} if the CharSequence is
5335
     *         {@code null}.
5336
     * @since 2.4
5337
     * @since 3.0 Changed signature from length(String) to length(CharSequence)
5338
     */
5339
    public static int length(final CharSequence cs) {
5340 2 1. length : replaced int return with 0 for org/apache/commons/lang3/StringUtils::length → KILLED
2. length : negated conditional → KILLED
        return cs == null ? 0 : cs.length();
5341
    }
5342
5343
    /**
5344
     * Converts a String to lower case as per {@link String#toLowerCase()}.
5345
     *
5346
     * <p>A {@code null} input String returns {@code null}.</p>
5347
     *
5348
     * <pre>
5349
     * StringUtils.lowerCase(null)  = null
5350
     * StringUtils.lowerCase("")    = ""
5351
     * StringUtils.lowerCase("aBc") = "abc"
5352
     * </pre>
5353
     *
5354
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toLowerCase()},
5355
     * the result of this method is affected by the current locale.
5356
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
5357
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
5358
     *
5359
     * @param str  the String to lower case, may be null
5360
     * @return the lower cased String, {@code null} if null String input
5361
     */
5362
    public static String lowerCase(final String str) {
5363 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
5364 1 1. lowerCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED
            return null;
5365
        }
5366 1 1. lowerCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED
        return str.toLowerCase();
5367
    }
5368
5369
    /**
5370
     * Converts a String to lower case as per {@link String#toLowerCase(Locale)}.
5371
     *
5372
     * <p>A {@code null} input String returns {@code null}.</p>
5373
     *
5374
     * <pre>
5375
     * StringUtils.lowerCase(null, Locale.ENGLISH)  = null
5376
     * StringUtils.lowerCase("", Locale.ENGLISH)    = ""
5377
     * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
5378
     * </pre>
5379
     *
5380
     * @param str  the String to lower case, may be null
5381
     * @param locale  the locale that defines the case transformation rules, must not be null
5382
     * @return the lower cased String, {@code null} if null String input
5383
     * @since 2.5
5384
     */
5385
    public static String lowerCase(final String str, final Locale locale) {
5386 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
5387 1 1. lowerCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED
            return null;
5388
        }
5389 1 1. lowerCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED
        return str.toLowerCase(LocaleUtils.toLocale(locale));
5390
    }
5391
5392
    private static int[] matches(final CharSequence first, final CharSequence second) {
5393
        final CharSequence max;
5394
        final CharSequence min;
5395 2 1. matches : changed conditional boundary → SURVIVED
2. matches : negated conditional → KILLED
        if (first.length() > second.length()) {
5396
            max = first;
5397
            min = second;
5398
        } else {
5399
            max = second;
5400
            min = first;
5401
        }
5402 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : Replaced integer subtraction with addition → KILLED
        final int range = Math.max(max.length() / 2 - 1, 0);
5403
        final int[] matchIndexes = ArrayFill.fill(new int[min.length()], -1);
5404
        final boolean[] matchFlags = new boolean[max.length()];
5405
        int matches = 0;
5406 2 1. matches : changed conditional boundary → KILLED
2. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
5407
            final char c1 = min.charAt(mi);
5408 5 1. matches : negated conditional → KILLED
2. matches : changed conditional boundary → KILLED
3. matches : Replaced integer subtraction with addition → KILLED
4. matches : Replaced integer addition with subtraction → KILLED
5. matches : Replaced integer addition with subtraction → KILLED
            for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) {
5409 2 1. matches : negated conditional → KILLED
2. matches : negated conditional → KILLED
                if (!matchFlags[xi] && c1 == max.charAt(xi)) {
5410
                    matchIndexes[mi] = xi;
5411
                    matchFlags[xi] = true;
5412 1 1. matches : Changed increment from 1 to -1 → KILLED
                    matches++;
5413
                    break;
5414
                }
5415
            }
5416
        }
5417
        final char[] ms1 = new char[matches];
5418
        final char[] ms2 = new char[matches];
5419 2 1. matches : changed conditional boundary → KILLED
2. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < min.length(); i++) {
5420 1 1. matches : negated conditional → KILLED
            if (matchIndexes[i] != -1) {
5421
                ms1[si] = min.charAt(i);
5422 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
5423
            }
5424
        }
5425 2 1. matches : changed conditional boundary → KILLED
2. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < max.length(); i++) {
5426 1 1. matches : negated conditional → KILLED
            if (matchFlags[i]) {
5427
                ms2[si] = max.charAt(i);
5428 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
5429
            }
5430
        }
5431
        int transpositions = 0;
5432 2 1. matches : negated conditional → KILLED
2. matches : changed conditional boundary → KILLED
        for (int mi = 0; mi < ms1.length; mi++) {
5433 1 1. matches : negated conditional → KILLED
            if (ms1[mi] != ms2[mi]) {
5434 1 1. matches : Changed increment from 1 to -1 → KILLED
                transpositions++;
5435
            }
5436
        }
5437
        int prefix = 0;
5438 2 1. matches : negated conditional → KILLED
2. matches : changed conditional boundary → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
5439 1 1. matches : negated conditional → KILLED
            if (first.charAt(mi) != second.charAt(mi)) {
5440
                break;
5441
            }
5442 1 1. matches : Changed increment from 1 to -1 → KILLED
            prefix++;
5443
        }
5444 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : replaced return value with null for org/apache/commons/lang3/StringUtils::matches → KILLED
        return new int[] { matches, transpositions / 2, prefix, max.length() };
5445
    }
5446
5447
    /**
5448
     * Gets {@code len} characters from the middle of a String.
5449
     *
5450
     * <p>If {@code len} characters are not available, the remainder
5451
     * of the String will be returned without an exception. If the
5452
     * String is {@code null}, {@code null} will be returned.
5453
     * An empty String is returned if len is negative or exceeds the
5454
     * length of {@code str}.</p>
5455
     *
5456
     * <pre>
5457
     * StringUtils.mid(null, *, *)    = null
5458
     * StringUtils.mid(*, *, -ve)     = ""
5459
     * StringUtils.mid("", 0, *)      = ""
5460
     * StringUtils.mid("abc", 0, 2)   = "ab"
5461
     * StringUtils.mid("abc", 0, 4)   = "abc"
5462
     * StringUtils.mid("abc", 2, 4)   = "c"
5463
     * StringUtils.mid("abc", 4, 2)   = ""
5464
     * StringUtils.mid("abc", -2, 2)  = "ab"
5465
     * </pre>
5466
     *
5467
     * @param str  the String to get the characters from, may be null
5468
     * @param pos  the position to start from, negative treated as zero
5469
     * @param len  the length of the required String
5470
     * @return the middle characters, {@code null} if null String input
5471
     */
5472
    public static String mid(final String str, int pos, final int len) {
5473 1 1. mid : negated conditional → KILLED
        if (str == null) {
5474 1 1. mid : replaced return value with "" for org/apache/commons/lang3/StringUtils::mid → KILLED
            return null;
5475
        }
5476 4 1. mid : changed conditional boundary → SURVIVED
2. mid : changed conditional boundary → SURVIVED
3. mid : negated conditional → KILLED
4. mid : negated conditional → KILLED
        if (len < 0 || pos > str.length()) {
5477
            return EMPTY;
5478
        }
5479 2 1. mid : changed conditional boundary → SURVIVED
2. mid : negated conditional → KILLED
        if (pos < 0) {
5480
            pos = 0;
5481
        }
5482 3 1. mid : changed conditional boundary → SURVIVED
2. mid : Replaced integer addition with subtraction → KILLED
3. mid : negated conditional → KILLED
        if (str.length() <= pos + len) {
5483 1 1. mid : replaced return value with "" for org/apache/commons/lang3/StringUtils::mid → KILLED
            return str.substring(pos);
5484
        }
5485 2 1. mid : Replaced integer addition with subtraction → KILLED
2. mid : replaced return value with "" for org/apache/commons/lang3/StringUtils::mid → KILLED
        return str.substring(pos, pos + len);
5486
    }
5487
5488
    /**
5489
     * Similar to <a
5490
     * href="https://www.w3.org/TR/xpath/#function-normalize-space">https://www.w3.org/TR/xpath/#function-normalize
5491
     * -space</a>
5492
     *
5493
     * <p>
5494
     * The function returns the argument string with whitespace normalized by using
5495
     * {@code {@link #trim(String)}} to remove leading and trailing whitespace
5496
     * and then replacing sequences of whitespace characters by a single space.
5497
     * </p>
5498
     * In XML Whitespace characters are the same as those allowed by the <a
5499
     * href="https://www.w3.org/TR/REC-xml/#NT-S">S</a> production, which is S ::= (#x20 | #x9 | #xD | #xA)+
5500
     * <p>
5501
     * Java's regexp pattern \s defines whitespace as [ \t\n\x0B\f\r]
5502
     *
5503
     * <p>For reference:</p>
5504
     * <ul>
5505
     * <li>\x0B = vertical tab</li>
5506
     * <li>\f = #xC = form feed</li>
5507
     * <li>#x20 = space</li>
5508
     * <li>#x9 = \t</li>
5509
     * <li>#xA = \n</li>
5510
     * <li>#xD = \r</li>
5511
     * </ul>
5512
     *
5513
     * <p>
5514
     * The difference is that Java's whitespace includes vertical tab and form feed, which this functional will also
5515
     * normalize. Additionally {@code {@link #trim(String)}} removes control characters (char &lt;= 32) from both
5516
     * ends of this String.
5517
     * </p>
5518
     *
5519
     * @see Pattern
5520
     * @see #trim(String)
5521
     * @see <a
5522
     *      href="https://www.w3.org/TR/xpath/#function-normalize-space">https://www.w3.org/TR/xpath/#function-normalize-space</a>
5523
     * @param str the source String to normalize whitespaces from, may be null
5524
     * @return the modified string with whitespace normalized, {@code null} if null String input
5525
     *
5526
     * @since 3.0
5527
     */
5528
    public static String normalizeSpace(final String str) {
5529
        // LANG-1020: Improved performance significantly by normalizing manually instead of using regex
5530
        // See https://github.com/librucha/commons-lang-normalizespaces-benchmark for performance test
5531 1 1. normalizeSpace : negated conditional → KILLED
        if (isEmpty(str)) {
5532 1 1. normalizeSpace : replaced return value with "" for org/apache/commons/lang3/StringUtils::normalizeSpace → KILLED
            return str;
5533
        }
5534
        final int size = str.length();
5535
        final char[] newChars = new char[size];
5536
        int count = 0;
5537
        int whitespacesCount = 0;
5538
        boolean startWhitespaces = true;
5539 2 1. normalizeSpace : changed conditional boundary → KILLED
2. normalizeSpace : negated conditional → KILLED
        for (int i = 0; i < size; i++) {
5540
            final char actualChar = str.charAt(i);
5541
            final boolean isWhitespace = Character.isWhitespace(actualChar);
5542 1 1. normalizeSpace : negated conditional → KILLED
            if (isWhitespace) {
5543 2 1. normalizeSpace : negated conditional → KILLED
2. normalizeSpace : negated conditional → KILLED
                if (whitespacesCount == 0 && !startWhitespaces) {
5544 1 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
                    newChars[count++] = SPACE.charAt(0);
5545
                }
5546 1 1. normalizeSpace : Changed increment from 1 to -1 → SURVIVED
                whitespacesCount++;
5547
            } else {
5548
                startWhitespaces = false;
5549 2 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
2. normalizeSpace : negated conditional → KILLED
                newChars[count++] = actualChar == 160 ? 32 : actualChar;
5550
                whitespacesCount = 0;
5551
            }
5552
        }
5553 1 1. normalizeSpace : negated conditional → KILLED
        if (startWhitespaces) {
5554
            return EMPTY;
5555
        }
5556 4 1. normalizeSpace : Replaced integer subtraction with addition → SURVIVED
2. normalizeSpace : replaced return value with "" for org/apache/commons/lang3/StringUtils::normalizeSpace → KILLED
3. normalizeSpace : changed conditional boundary → KILLED
4. normalizeSpace : negated conditional → KILLED
        return new String(newChars, 0, count - (whitespacesCount > 0 ? 1 : 0)).trim();
5557
    }
5558
5559
    /**
5560
     * Finds the n-th index within a CharSequence, handling {@code null}.
5561
     * This method uses {@link String#indexOf(String)} if possible.
5562
     * <p><b>Note:</b> The code starts looking for a match at the start of the target,
5563
     * incrementing the starting index by one after each successful match
5564
     * (unless {@code searchStr} is an empty string in which case the position
5565
     * is never incremented and {@code 0} is returned immediately).
5566
     * This means that matches may overlap.</p>
5567
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
5568
     *
5569
     * <pre>
5570
     * StringUtils.ordinalIndexOf(null, *, *)          = -1
5571
     * StringUtils.ordinalIndexOf(*, null, *)          = -1
5572
     * StringUtils.ordinalIndexOf("", "", *)           = 0
5573
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
5574
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
5575
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
5576
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
5577
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
5578
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
5579
     * StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
5580
     * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
5581
     * </pre>
5582
     *
5583
     * <p>Matches may overlap:</p>
5584
     * <pre>
5585
     * StringUtils.ordinalIndexOf("ababab", "aba", 1)   = 0
5586
     * StringUtils.ordinalIndexOf("ababab", "aba", 2)   = 2
5587
     * StringUtils.ordinalIndexOf("ababab", "aba", 3)   = -1
5588
     *
5589
     * StringUtils.ordinalIndexOf("abababab", "abab", 1) = 0
5590
     * StringUtils.ordinalIndexOf("abababab", "abab", 2) = 2
5591
     * StringUtils.ordinalIndexOf("abababab", "abab", 3) = 4
5592
     * StringUtils.ordinalIndexOf("abababab", "abab", 4) = -1
5593
     * </pre>
5594
     *
5595
     * <p>Note that 'head(CharSequence str, int n)' may be implemented as: </p>
5596
     *
5597
     * <pre>
5598
     *   str.substring(0, lastOrdinalIndexOf(str, "\n", n))
5599
     * </pre>
5600
     *
5601
     * @param str  the CharSequence to check, may be null
5602
     * @param searchStr  the CharSequence to find, may be null
5603
     * @param ordinal  the n-th {@code searchStr} to find
5604
     * @return the n-th index of the search CharSequence,
5605
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
5606
     * @since 2.1
5607
     * @since 3.0 Changed signature from ordinalIndexOf(String, String, int) to ordinalIndexOf(CharSequence, CharSequence, int)
5608
     */
5609
    public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
5610 1 1. ordinalIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, false);
5611
    }
5612
5613
    /**
5614
     * Finds the n-th index within a String, handling {@code null}.
5615
     * This method uses {@link String#indexOf(String)} if possible.
5616
     * <p>Note that matches may overlap<p>
5617
     *
5618
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
5619
     *
5620
     * @param str  the CharSequence to check, may be null
5621
     * @param searchStr  the CharSequence to find, may be null
5622
     * @param ordinal  the n-th {@code searchStr} to find, overlapping matches are allowed.
5623
     * @param lastIndex true if lastOrdinalIndexOf() otherwise false if ordinalIndexOf()
5624
     * @return the n-th index of the search CharSequence,
5625
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
5626
     */
5627
    // Shared code between ordinalIndexOf(String, String, int) and lastOrdinalIndexOf(String, String, int)
5628
    private static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal, final boolean lastIndex) {
5629 4 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : negated conditional → KILLED
3. ordinalIndexOf : negated conditional → KILLED
4. ordinalIndexOf : changed conditional boundary → KILLED
        if (str == null || searchStr == null || ordinal <= 0) {
5630 1 1. ordinalIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED
            return INDEX_NOT_FOUND;
5631
        }
5632 1 1. ordinalIndexOf : negated conditional → KILLED
        if (searchStr.length() == 0) {
5633 1 1. ordinalIndexOf : negated conditional → KILLED
            return lastIndex ? str.length() : 0;
5634
        }
5635
        int found = 0;
5636
        // set the initial index beyond the end of the string
5637
        // this is to allow for the initial index decrement/increment
5638 1 1. ordinalIndexOf : negated conditional → KILLED
        int index = lastIndex ? str.length() : INDEX_NOT_FOUND;
5639
        do {
5640 1 1. ordinalIndexOf : negated conditional → KILLED
            if (lastIndex) {
5641 1 1. ordinalIndexOf : Replaced integer subtraction with addition → KILLED
                index = CharSequenceUtils.lastIndexOf(str, searchStr, index - 1); // step backwards through string
5642
            } else {
5643 1 1. ordinalIndexOf : Replaced integer addition with subtraction → KILLED
                index = CharSequenceUtils.indexOf(str, searchStr, index + 1); // step forwards through string
5644
            }
5645 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : changed conditional boundary → KILLED
            if (index < 0) {
5646 1 1. ordinalIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED
                return index;
5647
            }
5648 1 1. ordinalIndexOf : Changed increment from 1 to -1 → KILLED
            found++;
5649 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : changed conditional boundary → KILLED
        } while (found < ordinal);
5650 1 1. ordinalIndexOf : replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED
        return index;
5651
    }
5652
5653
    /**
5654
     * Overlays part of a String with another String.
5655
     *
5656
     * <p>A {@code null} string input returns {@code null}.
5657
     * A negative index is treated as zero.
5658
     * An index greater than the string length is treated as the string length.
5659
     * The start index is always the smaller of the two indices.</p>
5660
     *
5661
     * <pre>
5662
     * StringUtils.overlay(null, *, *, *)            = null
5663
     * StringUtils.overlay("", "abc", 0, 0)          = "abc"
5664
     * StringUtils.overlay("abcdef", null, 2, 4)     = "abef"
5665
     * StringUtils.overlay("abcdef", "", 2, 4)       = "abef"
5666
     * StringUtils.overlay("abcdef", "", 4, 2)       = "abef"
5667
     * StringUtils.overlay("abcdef", "zzzz", 2, 4)   = "abzzzzef"
5668
     * StringUtils.overlay("abcdef", "zzzz", 4, 2)   = "abzzzzef"
5669
     * StringUtils.overlay("abcdef", "zzzz", -1, 4)  = "zzzzef"
5670
     * StringUtils.overlay("abcdef", "zzzz", 2, 8)   = "abzzzz"
5671
     * StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
5672
     * StringUtils.overlay("abcdef", "zzzz", 8, 10)  = "abcdefzzzz"
5673
     * </pre>
5674
     *
5675
     * @param str  the String to do overlaying in, may be null
5676
     * @param overlay  the String to overlay, may be null
5677
     * @param start  the position to start overlaying at
5678
     * @param end  the position to stop overlaying before
5679
     * @return overlayed String, {@code null} if null String input
5680
     * @since 2.0
5681
     */
5682
    public static String overlay(final String str, String overlay, int start, int end) {
5683 1 1. overlay : negated conditional → KILLED
        if (str == null) {
5684 1 1. overlay : replaced return value with "" for org/apache/commons/lang3/StringUtils::overlay → KILLED
            return null;
5685
        }
5686 1 1. overlay : negated conditional → KILLED
        if (overlay == null) {
5687
            overlay = EMPTY;
5688
        }
5689
        final int len = str.length();
5690 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start < 0) {
5691
            start = 0;
5692
        }
5693 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > len) {
5694
            start = len;
5695
        }
5696 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end < 0) {
5697
            end = 0;
5698
        }
5699 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end > len) {
5700
            end = len;
5701
        }
5702 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > end) {
5703
            final int temp = start;
5704
            start = end;
5705
            end = temp;
5706
        }
5707 1 1. overlay : replaced return value with "" for org/apache/commons/lang3/StringUtils::overlay → KILLED
        return str.substring(0, start) +
5708
            overlay +
5709
            str.substring(end);
5710
    }
5711
5712
    /**
5713
     * Prepends the prefix to the start of the string if the string does not
5714
     * already start with any of the prefixes.
5715
     *
5716
     * @param str The string.
5717
     * @param prefix The prefix to prepend to the start of the string.
5718
     * @param ignoreCase Indicates whether the compare should ignore case.
5719
     * @param prefixes Additional prefixes that are valid (optional).
5720
     *
5721
     * @return A new String if prefix was prepended, the same string otherwise.
5722
     */
5723
    private static String prependIfMissing(final String str, final CharSequence prefix, final boolean ignoreCase, final CharSequence... prefixes) {
5724 3 1. prependIfMissing : negated conditional → KILLED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(prefix) || startsWith(str, prefix, ignoreCase)) {
5725 1 1. prependIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED
            return str;
5726
        }
5727 1 1. prependIfMissing : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(prefixes)) {
5728
            for (final CharSequence p : prefixes) {
5729 1 1. prependIfMissing : negated conditional → KILLED
                if (startsWith(str, p, ignoreCase)) {
5730 1 1. prependIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED
                    return str;
5731
                }
5732
            }
5733
        }
5734 1 1. prependIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED
        return prefix + str;
5735
    }
5736
5737
    /**
5738
     * Prepends the prefix to the start of the string if the string does not
5739
     * already start with any of the prefixes.
5740
     *
5741
     * <pre>
5742
     * StringUtils.prependIfMissing(null, null) = null
5743
     * StringUtils.prependIfMissing("abc", null) = "abc"
5744
     * StringUtils.prependIfMissing("", "xyz") = "xyz"
5745
     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
5746
     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
5747
     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
5748
     * </pre>
5749
     * <p>With additional prefixes,</p>
5750
     * <pre>
5751
     * StringUtils.prependIfMissing(null, null, null) = null
5752
     * StringUtils.prependIfMissing("abc", null, null) = "abc"
5753
     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
5754
     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
5755
     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
5756
     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
5757
     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
5758
     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
5759
     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
5760
     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
5761
     * </pre>
5762
     *
5763
     * @param str The string.
5764
     * @param prefix The prefix to prepend to the start of the string.
5765
     * @param prefixes Additional prefixes that are valid.
5766
     *
5767
     * @return A new String if prefix was prepended, the same string otherwise.
5768
     *
5769
     * @since 3.2
5770
     */
5771
    public static String prependIfMissing(final String str, final CharSequence prefix, final CharSequence... prefixes) {
5772 1 1. prependIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED
        return prependIfMissing(str, prefix, false, prefixes);
5773
    }
5774
5775
    /**
5776
     * Prepends the prefix to the start of the string if the string does not
5777
     * already start, case-insensitive, with any of the prefixes.
5778
     *
5779
     * <pre>
5780
     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
5781
     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
5782
     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
5783
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
5784
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
5785
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
5786
     * </pre>
5787
     * <p>With additional prefixes,</p>
5788
     * <pre>
5789
     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
5790
     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
5791
     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
5792
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
5793
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
5794
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
5795
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
5796
     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
5797
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
5798
     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
5799
     * </pre>
5800
     *
5801
     * @param str The string.
5802
     * @param prefix The prefix to prepend to the start of the string.
5803
     * @param prefixes Additional prefixes that are valid (optional).
5804
     *
5805
     * @return A new String if prefix was prepended, the same string otherwise.
5806
     *
5807
     * @since 3.2
5808
     */
5809
    public static String prependIfMissingIgnoreCase(final String str, final CharSequence prefix, final CharSequence... prefixes) {
5810 1 1. prependIfMissingIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase → KILLED
        return prependIfMissing(str, prefix, true, prefixes);
5811
    }
5812
5813
    /**
5814
     * Removes all occurrences of a character from within the source string.
5815
     *
5816
     * <p>A {@code null} source string will return {@code null}.
5817
     * An empty ("") source string will return the empty string.</p>
5818
     *
5819
     * <pre>
5820
     * StringUtils.remove(null, *)       = null
5821
     * StringUtils.remove("", *)         = ""
5822
     * StringUtils.remove("queued", 'u') = "qeed"
5823
     * StringUtils.remove("queued", 'z') = "queued"
5824
     * </pre>
5825
     *
5826
     * @param str  the source String to search, may be null
5827
     * @param remove  the char to search for and remove, may be null
5828
     * @return the substring with the char removed if found,
5829
     *  {@code null} if null String input
5830
     * @since 2.1
5831
     */
5832
    public static String remove(final String str, final char remove) {
5833 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || str.indexOf(remove) == INDEX_NOT_FOUND) {
5834 1 1. remove : replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED
            return str;
5835
        }
5836
        final char[] chars = str.toCharArray();
5837
        int pos = 0;
5838 2 1. remove : changed conditional boundary → KILLED
2. remove : negated conditional → KILLED
        for (int i = 0; i < chars.length; i++) {
5839 1 1. remove : negated conditional → KILLED
            if (chars[i] != remove) {
5840 1 1. remove : Changed increment from 1 to -1 → KILLED
                chars[pos++] = chars[i];
5841
            }
5842
        }
5843 1 1. remove : replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED
        return new String(chars, 0, pos);
5844
    }
5845
5846
    /**
5847
     * Removes all occurrences of a substring from within the source string.
5848
     *
5849
     * <p>A {@code null} source string will return {@code null}.
5850
     * An empty ("") source string will return the empty string.
5851
     * A {@code null} remove string will return the source string.
5852
     * An empty ("") remove string will return the source string.</p>
5853
     *
5854
     * <pre>
5855
     * StringUtils.remove(null, *)        = null
5856
     * StringUtils.remove("", *)          = ""
5857
     * StringUtils.remove(*, null)        = *
5858
     * StringUtils.remove(*, "")          = *
5859
     * StringUtils.remove("queued", "ue") = "qd"
5860
     * StringUtils.remove("queued", "zz") = "queued"
5861
     * </pre>
5862
     *
5863
     * @param str  the source String to search, may be null
5864
     * @param remove  the String to search for and remove, may be null
5865
     * @return the substring with the string removed if found,
5866
     *  {@code null} if null String input
5867
     * @since 2.1
5868
     */
5869
    public static String remove(final String str, final String remove) {
5870 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
5871 1 1. remove : replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED
            return str;
5872
        }
5873 1 1. remove : replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED
        return replace(str, remove, EMPTY, -1);
5874
    }
5875
5876
    /**
5877
     * Removes each substring of the text String that matches the given regular expression.
5878
     *
5879
     * This method is a {@code null} safe equivalent to:
5880
     * <ul>
5881
     *  <li>{@code text.replaceAll(regex, StringUtils.EMPTY)}</li>
5882
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(StringUtils.EMPTY)}</li>
5883
     * </ul>
5884
     *
5885
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5886
     *
5887
     * <p>Unlike in the {@link #removePattern(String, String)} method, the {@link Pattern#DOTALL} option
5888
     * is NOT automatically added.
5889
     * To use the DOTALL option prepend {@code "(?s)"} to the regex.
5890
     * DOTALL is also known as single-line mode in Perl.</p>
5891
     *
5892
     * <pre>
5893
     * StringUtils.removeAll(null, *)      = null
5894
     * StringUtils.removeAll("any", (String) null)  = "any"
5895
     * StringUtils.removeAll("any", "")    = "any"
5896
     * StringUtils.removeAll("any", ".*")  = ""
5897
     * StringUtils.removeAll("any", ".+")  = ""
5898
     * StringUtils.removeAll("abc", ".?")  = ""
5899
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\nB"
5900
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5901
     * StringUtils.removeAll("ABCabc123abc", "[a-z]")     = "ABC123"
5902
     * </pre>
5903
     *
5904
     * @param text  text to remove from, may be null
5905
     * @param regex  the regular expression to which this string is to be matched
5906
     * @return  the text with any removes processed,
5907
     *              {@code null} if null String input
5908
     *
5909
     * @throws  java.util.regex.PatternSyntaxException
5910
     *              if the regular expression's syntax is invalid
5911
     *
5912
     * @see #replaceAll(String, String, String)
5913
     * @see #removePattern(String, String)
5914
     * @see String#replaceAll(String, String)
5915
     * @see java.util.regex.Pattern
5916
     * @see java.util.regex.Pattern#DOTALL
5917
     * @since 3.5
5918
     *
5919
     * @deprecated Moved to RegExUtils.
5920
     */
5921
    @Deprecated
5922
    public static String removeAll(final String text, final String regex) {
5923 1 1. removeAll : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeAll → KILLED
        return RegExUtils.removeAll(text, regex);
5924
    }
5925
5926
    /**
5927
     * Removes a substring only if it is at the end of a source string,
5928
     * otherwise returns the source string.
5929
     *
5930
     * <p>A {@code null} source string will return {@code null}.
5931
     * An empty ("") source string will return the empty string.
5932
     * A {@code null} search string will return the source string.</p>
5933
     *
5934
     * <pre>
5935
     * StringUtils.removeEnd(null, *)      = null
5936
     * StringUtils.removeEnd("", *)        = ""
5937
     * StringUtils.removeEnd(*, null)      = *
5938
     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
5939
     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
5940
     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
5941
     * StringUtils.removeEnd("abc", "")    = "abc"
5942
     * </pre>
5943
     *
5944
     * @param str  the source String to search, may be null
5945
     * @param remove  the String to search for and remove, may be null
5946
     * @return the substring with the string removed if found,
5947
     *  {@code null} if null String input
5948
     * @since 2.1
5949
     */
5950
    public static String removeEnd(final String str, final String remove) {
5951 2 1. removeEnd : negated conditional → KILLED
2. removeEnd : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
5952 1 1. removeEnd : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEnd → KILLED
            return str;
5953
        }
5954 1 1. removeEnd : negated conditional → KILLED
        if (str.endsWith(remove)) {
5955 2 1. removeEnd : Replaced integer subtraction with addition → KILLED
2. removeEnd : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEnd → KILLED
            return str.substring(0, str.length() - remove.length());
5956
        }
5957 1 1. removeEnd : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEnd → KILLED
        return str;
5958
    }
5959
5960
    /**
5961
     * Case insensitive removal of a substring if it is at the end of a source string,
5962
     * otherwise returns the source string.
5963
     *
5964
     * <p>A {@code null} source string will return {@code null}.
5965
     * An empty ("") source string will return the empty string.
5966
     * A {@code null} search string will return the source string.</p>
5967
     *
5968
     * <pre>
5969
     * StringUtils.removeEndIgnoreCase(null, *)      = null
5970
     * StringUtils.removeEndIgnoreCase("", *)        = ""
5971
     * StringUtils.removeEndIgnoreCase(*, null)      = *
5972
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
5973
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
5974
     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
5975
     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
5976
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
5977
     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
5978
     * </pre>
5979
     *
5980
     * @param str  the source String to search, may be null
5981
     * @param remove  the String to search for (case-insensitive) and remove, may be null
5982
     * @return the substring with the string removed if found,
5983
     *  {@code null} if null String input
5984
     * @since 2.4
5985
     */
5986
    public static String removeEndIgnoreCase(final String str, final String remove) {
5987 2 1. removeEndIgnoreCase : negated conditional → KILLED
2. removeEndIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
5988 1 1. removeEndIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase → KILLED
            return str;
5989
        }
5990 1 1. removeEndIgnoreCase : negated conditional → KILLED
        if (endsWithIgnoreCase(str, remove)) {
5991 2 1. removeEndIgnoreCase : Replaced integer subtraction with addition → KILLED
2. removeEndIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase → KILLED
            return str.substring(0, str.length() - remove.length());
5992
        }
5993 1 1. removeEndIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase → KILLED
        return str;
5994
    }
5995
5996
    /**
5997
     * Removes the first substring of the text string that matches the given regular expression.
5998
     *
5999
     * This method is a {@code null} safe equivalent to:
6000
     * <ul>
6001
     *  <li>{@code text.replaceFirst(regex, StringUtils.EMPTY)}</li>
6002
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(StringUtils.EMPTY)}</li>
6003
     * </ul>
6004
     *
6005
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6006
     *
6007
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
6008
     * To use the DOTALL option prepend {@code "(?s)"} to the regex.
6009
     * DOTALL is also known as single-line mode in Perl.</p>
6010
     *
6011
     * <pre>
6012
     * StringUtils.removeFirst(null, *)      = null
6013
     * StringUtils.removeFirst("any", (String) null)  = "any"
6014
     * StringUtils.removeFirst("any", "")    = "any"
6015
     * StringUtils.removeFirst("any", ".*")  = ""
6016
     * StringUtils.removeFirst("any", ".+")  = ""
6017
     * StringUtils.removeFirst("abc", ".?")  = "bc"
6018
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\n&lt;__&gt;B"
6019
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
6020
     * StringUtils.removeFirst("ABCabc123", "[a-z]")          = "ABCbc123"
6021
     * StringUtils.removeFirst("ABCabc123abc", "[a-z]+")      = "ABC123abc"
6022
     * </pre>
6023
     *
6024
     * @param text  text to remove from, may be null
6025
     * @param regex  the regular expression to which this string is to be matched
6026
     * @return  the text with the first replacement processed,
6027
     *              {@code null} if null String input
6028
     *
6029
     * @throws  java.util.regex.PatternSyntaxException
6030
     *              if the regular expression's syntax is invalid
6031
     *
6032
     * @see #replaceFirst(String, String, String)
6033
     * @see String#replaceFirst(String, String)
6034
     * @see java.util.regex.Pattern
6035
     * @see java.util.regex.Pattern#DOTALL
6036
     * @since 3.5
6037
     *
6038
     * @deprecated Moved to RegExUtils.
6039
     */
6040
    @Deprecated
6041
    public static String removeFirst(final String text, final String regex) {
6042 1 1. removeFirst : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeFirst → KILLED
        return replaceFirst(text, regex, EMPTY);
6043
    }
6044
6045
    /**
6046
     * Case insensitive removal of all occurrences of a substring from within
6047
     * the source string.
6048
     *
6049
     * <p>
6050
     * A {@code null} source string will return {@code null}. An empty ("")
6051
     * source string will return the empty string. A {@code null} remove string
6052
     * will return the source string. An empty ("") remove string will return
6053
     * the source string.
6054
     * </p>
6055
     *
6056
     * <pre>
6057
     * StringUtils.removeIgnoreCase(null, *)        = null
6058
     * StringUtils.removeIgnoreCase("", *)          = ""
6059
     * StringUtils.removeIgnoreCase(*, null)        = *
6060
     * StringUtils.removeIgnoreCase(*, "")          = *
6061
     * StringUtils.removeIgnoreCase("queued", "ue") = "qd"
6062
     * StringUtils.removeIgnoreCase("queued", "zz") = "queued"
6063
     * StringUtils.removeIgnoreCase("quEUed", "UE") = "qd"
6064
     * StringUtils.removeIgnoreCase("queued", "zZ") = "queued"
6065
     * </pre>
6066
     *
6067
     * @param str
6068
     *            the source String to search, may be null
6069
     * @param remove
6070
     *            the String to search for (case-insensitive) and remove, may be
6071
     *            null
6072
     * @return the substring with the string removed if found, {@code null} if
6073
     *         null String input
6074
     * @since 3.5
6075
     */
6076
    public static String removeIgnoreCase(final String str, final String remove) {
6077 1 1. removeIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeIgnoreCase → KILLED
        return replaceIgnoreCase(str, remove, EMPTY, -1);
6078
    }
6079
6080
    /**
6081
     * Removes each substring of the source String that matches the given regular expression using the DOTALL option.
6082
     *
6083
     * This call is a {@code null} safe equivalent to:
6084
     * <ul>
6085
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
6086
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
6087
     * </ul>
6088
     *
6089
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6090
     *
6091
     * <pre>
6092
     * StringUtils.removePattern(null, *)       = null
6093
     * StringUtils.removePattern("any", (String) null)   = "any"
6094
     * StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
6095
     * StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
6096
     * </pre>
6097
     *
6098
     * @param source
6099
     *            the source string
6100
     * @param regex
6101
     *            the regular expression to which this string is to be matched
6102
     * @return The resulting {@link String}
6103
     * @see #replacePattern(String, String, String)
6104
     * @see String#replaceAll(String, String)
6105
     * @see Pattern#DOTALL
6106
     * @since 3.2
6107
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
6108
     *
6109
     * @deprecated Moved to RegExUtils.
6110
     */
6111
    @Deprecated
6112
    public static String removePattern(final String source, final String regex) {
6113 1 1. removePattern : replaced return value with "" for org/apache/commons/lang3/StringUtils::removePattern → KILLED
        return RegExUtils.removePattern(source, regex);
6114
    }
6115
6116
    /**
6117
     * Removes a char only if it is at the beginning of a source string,
6118
     * otherwise returns the source string.
6119
     *
6120
     * <p>A {@code null} source string will return {@code null}.
6121
     * An empty ("") source string will return the empty string.
6122
     * A {@code null} search char will return the source string.</p>
6123
     *
6124
     * <pre>
6125
     * StringUtils.removeStart(null, *)      = null
6126
     * StringUtils.removeStart("", *)        = ""
6127
     * StringUtils.removeStart(*, null)      = *
6128
     * StringUtils.removeStart("/path", '/') = "path"
6129
     * StringUtils.removeStart("path", '/')  = "path"
6130
     * StringUtils.removeStart("path", 0)    = "path"
6131
     * </pre>
6132
     *
6133
     * @param str  the source String to search, may be null.
6134
     * @param remove  the char to search for and remove.
6135
     * @return the substring with the char removed if found,
6136
     *  {@code null} if null String input.
6137
     * @since 3.13.0
6138
     */
6139
    public static String removeStart(final String str, final char remove) {
6140 1 1. removeStart : negated conditional → KILLED
        if (isEmpty(str)) {
6141 1 1. removeStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED
            return str;
6142
        }
6143 2 1. removeStart : negated conditional → KILLED
2. removeStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED
        return str.charAt(0) == remove ? str.substring(1) : str;
6144
    }
6145
6146
    /**
6147
     * Removes a substring only if it is at the beginning of a source string,
6148
     * otherwise returns the source string.
6149
     *
6150
     * <p>A {@code null} source string will return {@code null}.
6151
     * An empty ("") source string will return the empty string.
6152
     * A {@code null} search string will return the source string.</p>
6153
     *
6154
     * <pre>
6155
     * StringUtils.removeStart(null, *)      = null
6156
     * StringUtils.removeStart("", *)        = ""
6157
     * StringUtils.removeStart(*, null)      = *
6158
     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
6159
     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
6160
     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
6161
     * StringUtils.removeStart("abc", "")    = "abc"
6162
     * </pre>
6163
     *
6164
     * @param str  the source String to search, may be null
6165
     * @param remove  the String to search for and remove, may be null
6166
     * @return the substring with the string removed if found,
6167
     *  {@code null} if null String input
6168
     * @since 2.1
6169
     */
6170
    public static String removeStart(final String str, final String remove) {
6171 2 1. removeStart : negated conditional → KILLED
2. removeStart : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
6172 1 1. removeStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED
            return str;
6173
        }
6174 1 1. removeStart : negated conditional → KILLED
        if (str.startsWith(remove)) {
6175 1 1. removeStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED
            return str.substring(remove.length());
6176
        }
6177 1 1. removeStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED
        return str;
6178
    }
6179
6180
    /**
6181
     * Case insensitive removal of a substring if it is at the beginning of a source string,
6182
     * otherwise returns the source string.
6183
     *
6184
     * <p>A {@code null} source string will return {@code null}.
6185
     * An empty ("") source string will return the empty string.
6186
     * A {@code null} search string will return the source string.</p>
6187
     *
6188
     * <pre>
6189
     * StringUtils.removeStartIgnoreCase(null, *)      = null
6190
     * StringUtils.removeStartIgnoreCase("", *)        = ""
6191
     * StringUtils.removeStartIgnoreCase(*, null)      = *
6192
     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
6193
     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
6194
     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
6195
     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
6196
     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
6197
     * </pre>
6198
     *
6199
     * @param str  the source String to search, may be null
6200
     * @param remove  the String to search for (case-insensitive) and remove, may be null
6201
     * @return the substring with the string removed if found,
6202
     *  {@code null} if null String input
6203
     * @since 2.4
6204
     */
6205
    public static String removeStartIgnoreCase(final String str, final String remove) {
6206 2 1. removeStartIgnoreCase : negated conditional → KILLED
2. removeStartIgnoreCase : negated conditional → KILLED
        if (str != null && startsWithIgnoreCase(str, remove)) {
6207 1 1. removeStartIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase → KILLED
            return str.substring(length(remove));
6208
        }
6209 1 1. removeStartIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase → KILLED
        return str;
6210
    }
6211
6212
    /**
6213
     * Returns padding using the specified delimiter repeated
6214
     * to a given length.
6215
     *
6216
     * <pre>
6217
     * StringUtils.repeat('e', 0)  = ""
6218
     * StringUtils.repeat('e', 3)  = "eee"
6219
     * StringUtils.repeat('e', -2) = ""
6220
     * </pre>
6221
     *
6222
     * <p>Note: this method does not support padding with
6223
     * <a href="https://www.unicode.org/glossary/#supplementary_character">Unicode Supplementary Characters</a>
6224
     * as they require a pair of {@code char}s to be represented.
6225
     * If you are needing to support full I18N of your applications
6226
     * consider using {@link #repeat(String, int)} instead.
6227
     * </p>
6228
     *
6229
     * @param ch  character to repeat
6230
     * @param repeat  number of times to repeat char, negative treated as zero
6231
     * @return String with repeated character
6232
     * @see #repeat(String, int)
6233
     */
6234
    public static String repeat(final char ch, final int repeat) {
6235 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6236
            return EMPTY;
6237
        }
6238 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
        return new String(ArrayFill.fill(new char[repeat], ch));
6239
    }
6240
6241
    /**
6242
     * Repeat a String {@code repeat} times to form a
6243
     * new String.
6244
     *
6245
     * <pre>
6246
     * StringUtils.repeat(null, 2) = null
6247
     * StringUtils.repeat("", 0)   = ""
6248
     * StringUtils.repeat("", 2)   = ""
6249
     * StringUtils.repeat("a", 3)  = "aaa"
6250
     * StringUtils.repeat("ab", 2) = "abab"
6251
     * StringUtils.repeat("a", -2) = ""
6252
     * </pre>
6253
     *
6254
     * @param str  the String to repeat, may be null
6255
     * @param repeat  number of times to repeat str, negative treated as zero
6256
     * @return a new String consisting of the original String repeated,
6257
     *  {@code null} if null String input
6258
     */
6259
    public static String repeat(final String str, final int repeat) {
6260
        // Performance tuned for 2.0 (JDK1.4)
6261 1 1. repeat : negated conditional → KILLED
        if (str == null) {
6262 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
            return null;
6263
        }
6264 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6265
            return EMPTY;
6266
        }
6267
        final int inputLength = str.length();
6268 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (repeat == 1 || inputLength == 0) {
6269 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → SURVIVED
            return str;
6270
        }
6271 3 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → SURVIVED
3. repeat : negated conditional → KILLED
        if (inputLength == 1 && repeat <= PAD_LIMIT) {
6272 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
            return repeat(str.charAt(0), repeat);
6273
        }
6274
6275 1 1. repeat : Replaced integer multiplication with division → KILLED
        final int outputLength = inputLength * repeat;
6276
        switch (inputLength) {
6277
            case 1 :
6278 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
                return repeat(str.charAt(0), repeat);
6279
            case 2 :
6280
                final char ch0 = str.charAt(0);
6281
                final char ch1 = str.charAt(1);
6282
                final char[] output2 = new char[outputLength];
6283 5 1. repeat : Changed increment from -1 to 1 → TIMED_OUT
2. repeat : negated conditional → KILLED
3. repeat : Replaced integer multiplication with division → KILLED
4. repeat : Replaced integer subtraction with addition → KILLED
5. repeat : changed conditional boundary → KILLED
                for (int i = repeat * 2 - 2; i >= 0; i--, i--) {
6284
                    output2[i] = ch0;
6285 1 1. repeat : Replaced integer addition with subtraction → KILLED
                    output2[i + 1] = ch1;
6286
                }
6287 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
                return new String(output2);
6288
            default :
6289
                final StringBuilder buf = new StringBuilder(outputLength);
6290 2 1. repeat : changed conditional boundary → KILLED
2. repeat : negated conditional → KILLED
                for (int i = 0; i < repeat; i++) {
6291
                    buf.append(str);
6292
                }
6293 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
                return buf.toString();
6294
        }
6295
    }
6296
6297
    /**
6298
     * Repeat a String {@code repeat} times to form a
6299
     * new String, with a String separator injected each time.
6300
     *
6301
     * <pre>
6302
     * StringUtils.repeat(null, null, 2) = null
6303
     * StringUtils.repeat(null, "x", 2)  = null
6304
     * StringUtils.repeat("", null, 0)   = ""
6305
     * StringUtils.repeat("", "", 2)     = ""
6306
     * StringUtils.repeat("", "x", 3)    = "xx"
6307
     * StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
6308
     * </pre>
6309
     *
6310
     * @param str        the String to repeat, may be null
6311
     * @param separator  the String to inject, may be null
6312
     * @param repeat     number of times to repeat str, negative treated as zero
6313
     * @return a new String consisting of the original String repeated,
6314
     *  {@code null} if null String input
6315
     * @since 2.5
6316
     */
6317
    public static String repeat(final String str, final String separator, final int repeat) {
6318 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (str == null || separator == null) {
6319 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
            return repeat(str, repeat);
6320
        }
6321
        // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it
6322
        final String result = repeat(str + separator, repeat);
6323 1 1. repeat : replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED
        return removeEnd(result, separator);
6324
    }
6325
6326
    /**
6327
     * Replaces all occurrences of a String within another String.
6328
     *
6329
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6330
     *
6331
     * <pre>
6332
     * StringUtils.replace(null, *, *)        = null
6333
     * StringUtils.replace("", *, *)          = ""
6334
     * StringUtils.replace("any", null, *)    = "any"
6335
     * StringUtils.replace("any", *, null)    = "any"
6336
     * StringUtils.replace("any", "", *)      = "any"
6337
     * StringUtils.replace("aba", "a", null)  = "aba"
6338
     * StringUtils.replace("aba", "a", "")    = "b"
6339
     * StringUtils.replace("aba", "a", "z")   = "zbz"
6340
     * </pre>
6341
     *
6342
     * @see #replace(String text, String searchString, String replacement, int max)
6343
     * @param text  text to search and replace in, may be null
6344
     * @param searchString  the String to search for, may be null
6345
     * @param replacement  the String to replace it with, may be null
6346
     * @return the text with any replacements processed,
6347
     *  {@code null} if null String input
6348
     */
6349
    public static String replace(final String text, final String searchString, final String replacement) {
6350 1 1. replace : replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED
        return replace(text, searchString, replacement, -1);
6351
    }
6352
6353
    /**
6354
     * Replaces a String with another String inside a larger String,
6355
     * for the first {@code max} values of the search String.
6356
     *
6357
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6358
     *
6359
     * <pre>
6360
     * StringUtils.replace(null, *, *, *)         = null
6361
     * StringUtils.replace("", *, *, *)           = ""
6362
     * StringUtils.replace("any", null, *, *)     = "any"
6363
     * StringUtils.replace("any", *, null, *)     = "any"
6364
     * StringUtils.replace("any", "", *, *)       = "any"
6365
     * StringUtils.replace("any", *, *, 0)        = "any"
6366
     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
6367
     * StringUtils.replace("abaa", "a", "", -1)   = "b"
6368
     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
6369
     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
6370
     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
6371
     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
6372
     * </pre>
6373
     *
6374
     * @param text  text to search and replace in, may be null
6375
     * @param searchString  the String to search for, may be null
6376
     * @param replacement  the String to replace it with, may be null
6377
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
6378
     * @return the text with any replacements processed,
6379
     *  {@code null} if null String input
6380
     */
6381
    public static String replace(final String text, final String searchString, final String replacement, final int max) {
6382 1 1. replace : replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED
        return replace(text, searchString, replacement, max, false);
6383
    }
6384
6385
    /**
6386
     * Replaces a String with another String inside a larger String,
6387
     * for the first {@code max} values of the search String,
6388
     * case-sensitively/insensitively based on {@code ignoreCase} value.
6389
     *
6390
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6391
     *
6392
     * <pre>
6393
     * StringUtils.replace(null, *, *, *, false)         = null
6394
     * StringUtils.replace("", *, *, *, false)           = ""
6395
     * StringUtils.replace("any", null, *, *, false)     = "any"
6396
     * StringUtils.replace("any", *, null, *, false)     = "any"
6397
     * StringUtils.replace("any", "", *, *, false)       = "any"
6398
     * StringUtils.replace("any", *, *, 0, false)        = "any"
6399
     * StringUtils.replace("abaa", "a", null, -1, false) = "abaa"
6400
     * StringUtils.replace("abaa", "a", "", -1, false)   = "b"
6401
     * StringUtils.replace("abaa", "a", "z", 0, false)   = "abaa"
6402
     * StringUtils.replace("abaa", "A", "z", 1, false)   = "abaa"
6403
     * StringUtils.replace("abaa", "A", "z", 1, true)   = "zbaa"
6404
     * StringUtils.replace("abAa", "a", "z", 2, true)   = "zbza"
6405
     * StringUtils.replace("abAa", "a", "z", -1, true)  = "zbzz"
6406
     * </pre>
6407
     *
6408
     * @param text  text to search and replace in, may be null
6409
     * @param searchString  the String to search for (case-insensitive), may be null
6410
     * @param replacement  the String to replace it with, may be null
6411
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
6412
     * @param ignoreCase if true replace is case-insensitive, otherwise case-sensitive
6413
     * @return the text with any replacements processed,
6414
     *  {@code null} if null String input
6415
     */
6416
     private static String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase) {
6417 4 1. replace : negated conditional → KILLED
2. replace : negated conditional → KILLED
3. replace : negated conditional → KILLED
4. replace : negated conditional → KILLED
         if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
6418 1 1. replace : replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED
             return text;
6419
         }
6420 1 1. replace : negated conditional → SURVIVED
         if (ignoreCase) {
6421
             searchString = searchString.toLowerCase();
6422
         }
6423
         int start = 0;
6424 1 1. replace : negated conditional → KILLED
         int end = ignoreCase ? indexOfIgnoreCase(text, searchString, start) : indexOf(text, searchString, start);
6425 1 1. replace : negated conditional → KILLED
         if (end == INDEX_NOT_FOUND) {
6426 1 1. replace : replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED
             return text;
6427
         }
6428
         final int replLength = searchString.length();
6429 1 1. replace : Replaced integer subtraction with addition → SURVIVED
         int increase = Math.max(replacement.length() - replLength, 0);
6430 3 1. replace : Replaced integer multiplication with division → SURVIVED
2. replace : negated conditional → SURVIVED
3. replace : changed conditional boundary → SURVIVED
         increase *= max < 0 ? 16 : Math.min(max, 64);
6431 1 1. replace : Replaced integer addition with subtraction → KILLED
         final StringBuilder buf = new StringBuilder(text.length() + increase);
6432 1 1. replace : negated conditional → KILLED
         while (end != INDEX_NOT_FOUND) {
6433
             buf.append(text, start, end).append(replacement);
6434 1 1. replace : Replaced integer addition with subtraction → KILLED
             start = end + replLength;
6435 2 1. replace : negated conditional → KILLED
2. replace : Changed increment from -1 to 1 → KILLED
             if (--max == 0) {
6436
                 break;
6437
             }
6438 1 1. replace : negated conditional → KILLED
             end = ignoreCase ? indexOfIgnoreCase(text, searchString, start) : indexOf(text, searchString, start);
6439
         }
6440
         buf.append(text, start, text.length());
6441 1 1. replace : replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED
         return buf.toString();
6442
     }
6443
6444
    /**
6445
     * Replaces each substring of the text String that matches the given regular expression
6446
     * with the given replacement.
6447
     *
6448
     * This method is a {@code null} safe equivalent to:
6449
     * <ul>
6450
     *  <li>{@code text.replaceAll(regex, replacement)}</li>
6451
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(replacement)}</li>
6452
     * </ul>
6453
     *
6454
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6455
     *
6456
     * <p>Unlike in the {@link #replacePattern(String, String, String)} method, the {@link Pattern#DOTALL} option
6457
     * is NOT automatically added.
6458
     * To use the DOTALL option prepend {@code "(?s)"} to the regex.
6459
     * DOTALL is also known as single-line mode in Perl.</p>
6460
     *
6461
     * <pre>
6462
     * StringUtils.replaceAll(null, *, *)       = null
6463
     * StringUtils.replaceAll("any", (String) null, *)   = "any"
6464
     * StringUtils.replaceAll("any", *, null)   = "any"
6465
     * StringUtils.replaceAll("", "", "zzz")    = "zzz"
6466
     * StringUtils.replaceAll("", ".*", "zzz")  = "zzz"
6467
     * StringUtils.replaceAll("", ".+", "zzz")  = ""
6468
     * StringUtils.replaceAll("abc", "", "ZZ")  = "ZZaZZbZZcZZ"
6469
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\nz"
6470
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
6471
     * StringUtils.replaceAll("ABCabc123", "[a-z]", "_")       = "ABC___123"
6472
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
6473
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
6474
     * StringUtils.replaceAll("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
6475
     * </pre>
6476
     *
6477
     * @param text  text to search and replace in, may be null
6478
     * @param regex  the regular expression to which this string is to be matched
6479
     * @param replacement  the string to be substituted for each match
6480
     * @return  the text with any replacements processed,
6481
     *              {@code null} if null String input
6482
     *
6483
     * @throws  java.util.regex.PatternSyntaxException
6484
     *              if the regular expression's syntax is invalid
6485
     *
6486
     * @see #replacePattern(String, String, String)
6487
     * @see String#replaceAll(String, String)
6488
     * @see java.util.regex.Pattern
6489
     * @see java.util.regex.Pattern#DOTALL
6490
     * @since 3.5
6491
     *
6492
     * @deprecated Moved to RegExUtils.
6493
     */
6494
    @Deprecated
6495
    public static String replaceAll(final String text, final String regex, final String replacement) {
6496 1 1. replaceAll : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceAll → KILLED
        return RegExUtils.replaceAll(text, regex, replacement);
6497
    }
6498
6499
    /**
6500
     * Replaces all occurrences of a character in a String with another.
6501
     * This is a null-safe version of {@link String#replace(char, char)}.
6502
     *
6503
     * <p>A {@code null} string input returns {@code null}.
6504
     * An empty ("") string input returns an empty string.</p>
6505
     *
6506
     * <pre>
6507
     * StringUtils.replaceChars(null, *, *)        = null
6508
     * StringUtils.replaceChars("", *, *)          = ""
6509
     * StringUtils.replaceChars("abcba", 'b', 'y') = "aycya"
6510
     * StringUtils.replaceChars("abcba", 'z', 'y') = "abcba"
6511
     * </pre>
6512
     *
6513
     * @param str  String to replace characters in, may be null
6514
     * @param searchChar  the character to search for, may be null
6515
     * @param replaceChar  the character to replace, may be null
6516
     * @return modified String, {@code null} if null string input
6517
     * @since 2.0
6518
     */
6519
    public static String replaceChars(final String str, final char searchChar, final char replaceChar) {
6520 1 1. replaceChars : negated conditional → KILLED
        if (str == null) {
6521 1 1. replaceChars : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED
            return null;
6522
        }
6523 1 1. replaceChars : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED
        return str.replace(searchChar, replaceChar);
6524
    }
6525
6526
    /**
6527
     * Replaces multiple characters in a String in one go.
6528
     * This method can also be used to delete characters.
6529
     *
6530
     * <p>For example:<br>
6531
     * {@code replaceChars(&quot;hello&quot;, &quot;ho&quot;, &quot;jy&quot;) = jelly}.</p>
6532
     *
6533
     * <p>A {@code null} string input returns {@code null}.
6534
     * An empty ("") string input returns an empty string.
6535
     * A null or empty set of search characters returns the input string.</p>
6536
     *
6537
     * <p>The length of the search characters should normally equal the length
6538
     * of the replace characters.
6539
     * If the search characters is longer, then the extra search characters
6540
     * are deleted.
6541
     * If the search characters is shorter, then the extra replace characters
6542
     * are ignored.</p>
6543
     *
6544
     * <pre>
6545
     * StringUtils.replaceChars(null, *, *)           = null
6546
     * StringUtils.replaceChars("", *, *)             = ""
6547
     * StringUtils.replaceChars("abc", null, *)       = "abc"
6548
     * StringUtils.replaceChars("abc", "", *)         = "abc"
6549
     * StringUtils.replaceChars("abc", "b", null)     = "ac"
6550
     * StringUtils.replaceChars("abc", "b", "")       = "ac"
6551
     * StringUtils.replaceChars("abcba", "bc", "yz")  = "ayzya"
6552
     * StringUtils.replaceChars("abcba", "bc", "y")   = "ayya"
6553
     * StringUtils.replaceChars("abcba", "bc", "yzx") = "ayzya"
6554
     * </pre>
6555
     *
6556
     * @param str  String to replace characters in, may be null
6557
     * @param searchChars  a set of characters to search for, may be null
6558
     * @param replaceChars  a set of characters to replace, may be null
6559
     * @return modified String, {@code null} if null string input
6560
     * @since 2.0
6561
     */
6562
    public static String replaceChars(final String str, final String searchChars, String replaceChars) {
6563 2 1. replaceChars : negated conditional → KILLED
2. replaceChars : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(searchChars)) {
6564 1 1. replaceChars : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED
            return str;
6565
        }
6566 1 1. replaceChars : negated conditional → KILLED
        if (replaceChars == null) {
6567
            replaceChars = EMPTY;
6568
        }
6569
        boolean modified = false;
6570
        final int replaceCharsLength = replaceChars.length();
6571
        final int strLength = str.length();
6572
        final StringBuilder buf = new StringBuilder(strLength);
6573 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
        for (int i = 0; i < strLength; i++) {
6574
            final char ch = str.charAt(i);
6575
            final int index = searchChars.indexOf(ch);
6576 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
            if (index >= 0) {
6577
                modified = true;
6578 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
                if (index < replaceCharsLength) {
6579
                    buf.append(replaceChars.charAt(index));
6580
                }
6581
            } else {
6582
                buf.append(ch);
6583
            }
6584
        }
6585 1 1. replaceChars : negated conditional → KILLED
        if (modified) {
6586 1 1. replaceChars : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED
            return buf.toString();
6587
        }
6588 1 1. replaceChars : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED
        return str;
6589
    }
6590
6591
    /**
6592
     * Replaces all occurrences of Strings within another String.
6593
     *
6594
     * <p>
6595
     * A {@code null} reference passed to this method is a no-op, or if
6596
     * any "search string" or "string to replace" is null, that replace will be
6597
     * ignored. This will not repeat. For repeating replaces, call the
6598
     * overloaded method.
6599
     * </p>
6600
     *
6601
     * <pre>
6602
     *  StringUtils.replaceEach(null, *, *)        = null
6603
     *  StringUtils.replaceEach("", *, *)          = ""
6604
     *  StringUtils.replaceEach("aba", null, null) = "aba"
6605
     *  StringUtils.replaceEach("aba", new String[0], null) = "aba"
6606
     *  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
6607
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
6608
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
6609
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
6610
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
6611
     *  (example of how it does not repeat)
6612
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
6613
     * </pre>
6614
     *
6615
     * @param text
6616
     *            text to search and replace in, no-op if null
6617
     * @param searchList
6618
     *            the Strings to search for, no-op if null
6619
     * @param replacementList
6620
     *            the Strings to replace them with, no-op if null
6621
     * @return the text with any replacements processed, {@code null} if
6622
     *         null String input
6623
     * @throws IllegalArgumentException
6624
     *             if the lengths of the arrays are not the same (null is ok,
6625
     *             and/or size 0)
6626
     * @since 2.4
6627
     */
6628
    public static String replaceEach(final String text, final String[] searchList, final String[] replacementList) {
6629 1 1. replaceEach : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED
        return replaceEach(text, searchList, replacementList, false, 0);
6630
    }
6631
6632
    /**
6633
     * Replace all occurrences of Strings within another String.
6634
     * This is a private recursive helper method for {@link #replaceEachRepeatedly(String, String[], String[])} and
6635
     * {@link #replaceEach(String, String[], String[])}
6636
     *
6637
     * <p>
6638
     * A {@code null} reference passed to this method is a no-op, or if
6639
     * any "search string" or "string to replace" is null, that replace will be
6640
     * ignored.
6641
     * </p>
6642
     *
6643
     * <pre>
6644
     *  StringUtils.replaceEach(null, *, *, *, *) = null
6645
     *  StringUtils.replaceEach("", *, *, *, *) = ""
6646
     *  StringUtils.replaceEach("aba", null, null, *, *) = "aba"
6647
     *  StringUtils.replaceEach("aba", new String[0], null, *, *) = "aba"
6648
     *  StringUtils.replaceEach("aba", null, new String[0], *, *) = "aba"
6649
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null, *, *) = "aba"
6650
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *, >=0) = "b"
6651
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *, >=0) = "aba"
6652
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *, >=0) = "wcte"
6653
     *  (example of how it repeats)
6654
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false, >=0) = "dcte"
6655
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true, >=2) = "tcte"
6656
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, *, *) = IllegalStateException
6657
     * </pre>
6658
     *
6659
     * @param text
6660
     *            text to search and replace in, no-op if null
6661
     * @param searchList
6662
     *            the Strings to search for, no-op if null
6663
     * @param replacementList
6664
     *            the Strings to replace them with, no-op if null
6665
     * @param repeat if true, then replace repeatedly
6666
     *       until there are no more possible replacements or timeToLive < 0
6667
     * @param timeToLive
6668
     *            if less than 0 then there is a circular reference and endless
6669
     *            loop
6670
     * @return the text with any replacements processed, {@code null} if
6671
     *         null String input
6672
     * @throws IllegalStateException
6673
     *             if the search is repeating and there is an endless loop due
6674
     *             to outputs of one being inputs to another
6675
     * @throws IllegalArgumentException
6676
     *             if the lengths of the arrays are not the same (null is ok,
6677
     *             and/or size 0)
6678
     * @since 2.4
6679
     */
6680
    private static String replaceEach(
6681
            final String text, final String[] searchList, final String[] replacementList, final boolean repeat, final int timeToLive) {
6682
6683
        // mchyzer Performance note: This creates very few new objects (one major goal)
6684
        // let me know if there are performance requests, we can create a harness to measure
6685
6686
        // if recursing, this shouldn't be less than 0
6687 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : changed conditional boundary → KILLED
        if (timeToLive < 0) {
6688
            final Set<String> searchSet = new HashSet<>(Arrays.asList(searchList));
6689
            final Set<String> replacementSet = new HashSet<>(Arrays.asList(replacementList));
6690
            searchSet.retainAll(replacementSet);
6691 1 1. replaceEach : negated conditional → KILLED
            if (!searchSet.isEmpty()) {
6692
                throw new IllegalStateException("Aborting to protect against StackOverflowError - " +
6693
                        "output of one loop is the input of another");
6694
            }
6695
        }
6696
6697 5 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
4. replaceEach : negated conditional → KILLED
5. replaceEach : negated conditional → KILLED
        if (isEmpty(text) || ArrayUtils.isEmpty(searchList) || ArrayUtils.isEmpty(replacementList) || ArrayUtils.isNotEmpty(searchList) && timeToLive == -1) {
6698 1 1. replaceEach : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED
            return text;
6699
        }
6700
6701
        final int searchLength = searchList.length;
6702
        final int replacementLength = replacementList.length;
6703
6704
        // make sure lengths are ok, these need to be equal
6705 1 1. replaceEach : negated conditional → KILLED
        if (searchLength != replacementLength) {
6706
            throw new IllegalArgumentException("Search and Replace array lengths don't match: "
6707
                + searchLength
6708
                + " vs "
6709
                + replacementLength);
6710
        }
6711
6712
        // keep track of which still have matches
6713
        final boolean[] noMoreMatchesForReplIndex = new boolean[searchLength];
6714
6715
        // index on index that the match was found
6716
        int textIndex = -1;
6717
        int replaceIndex = -1;
6718
        int tempIndex;
6719
6720
        // index of replace array that will replace the search string found
6721
        // NOTE: logic duplicated below START
6722 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
        for (int i = 0; i < searchLength; i++) {
6723 3 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
            if (noMoreMatchesForReplIndex[i] || isEmpty(searchList[i]) || replacementList[i] == null) {
6724
                continue;
6725
            }
6726
            tempIndex = text.indexOf(searchList[i]);
6727
6728
            // see if we need to keep searching for this
6729 1 1. replaceEach : negated conditional → KILLED
            if (tempIndex == -1) {
6730
                noMoreMatchesForReplIndex[i] = true;
6731 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
            } else if (textIndex == -1 || tempIndex < textIndex) {
6732
                textIndex = tempIndex;
6733
                replaceIndex = i;
6734
            }
6735
        }
6736
        // NOTE: logic mostly below END
6737
6738
        // no search strings found, we are done
6739 1 1. replaceEach : negated conditional → KILLED
        if (textIndex == -1) {
6740 1 1. replaceEach : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED
            return text;
6741
        }
6742
6743
        int start = 0;
6744
6745
        // get a good guess on the size of the result buffer so it doesn't have to double if it goes over a bit
6746
        int increase = 0;
6747
6748
        // count the replacement text elements that are larger than their corresponding text being replaced
6749 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : changed conditional boundary → KILLED
        for (int i = 0; i < searchList.length; i++) {
6750 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
            if (searchList[i] == null || replacementList[i] == null) {
6751
                continue;
6752
            }
6753 1 1. replaceEach : Replaced integer subtraction with addition → SURVIVED
            final int greater = replacementList[i].length() - searchList[i].length();
6754 2 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → SURVIVED
            if (greater > 0) {
6755 2 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
2. replaceEach : Replaced integer multiplication with division → SURVIVED
                increase += 3 * greater; // assume 3 matches
6756
            }
6757
        }
6758
        // have upper-bound at 20% increase, then let Java take over
6759 1 1. replaceEach : Replaced integer division with multiplication → SURVIVED
        increase = Math.min(increase, text.length() / 5);
6760
6761 1 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder buf = new StringBuilder(text.length() + increase);
6762
6763 1 1. replaceEach : negated conditional → KILLED
        while (textIndex != -1) {
6764
6765 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
            for (int i = start; i < textIndex; i++) {
6766
                buf.append(text.charAt(i));
6767
            }
6768
            buf.append(replacementList[replaceIndex]);
6769
6770 1 1. replaceEach : Replaced integer addition with subtraction → KILLED
            start = textIndex + searchList[replaceIndex].length();
6771
6772
            textIndex = -1;
6773
            replaceIndex = -1;
6774
            // find the next earliest match
6775
            // NOTE: logic mostly duplicated above START
6776 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : changed conditional boundary → KILLED
            for (int i = 0; i < searchLength; i++) {
6777 3 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                if (noMoreMatchesForReplIndex[i] || isEmpty(searchList[i]) || replacementList[i] == null) {
6778
                    continue;
6779
                }
6780
                tempIndex = text.indexOf(searchList[i], start);
6781
6782
                // see if we need to keep searching for this
6783 1 1. replaceEach : negated conditional → KILLED
                if (tempIndex == -1) {
6784
                    noMoreMatchesForReplIndex[i] = true;
6785 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                } else if (textIndex == -1 || tempIndex < textIndex) {
6786
                    textIndex = tempIndex;
6787
                    replaceIndex = i;
6788
                }
6789
            }
6790
            // NOTE: logic duplicated above END
6791
6792
        }
6793
        final int textLength = text.length();
6794 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : changed conditional boundary → KILLED
        for (int i = start; i < textLength; i++) {
6795
            buf.append(text.charAt(i));
6796
        }
6797
        final String result = buf.toString();
6798 1 1. replaceEach : negated conditional → KILLED
        if (!repeat) {
6799 1 1. replaceEach : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED
            return result;
6800
        }
6801
6802 2 1. replaceEach : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED
2. replaceEach : Replaced integer subtraction with addition → KILLED
        return replaceEach(result, searchList, replacementList, repeat, timeToLive - 1);
6803
    }
6804
6805
    /**
6806
     * Replaces all occurrences of Strings within another String.
6807
     *
6808
     * <p>
6809
     * A {@code null} reference passed to this method is a no-op, or if
6810
     * any "search string" or "string to replace" is null, that replace will be
6811
     * ignored.
6812
     * </p>
6813
     *
6814
     * <pre>
6815
     *  StringUtils.replaceEachRepeatedly(null, *, *) = null
6816
     *  StringUtils.replaceEachRepeatedly("", *, *) = ""
6817
     *  StringUtils.replaceEachRepeatedly("aba", null, null) = "aba"
6818
     *  StringUtils.replaceEachRepeatedly("aba", new String[0], null) = "aba"
6819
     *  StringUtils.replaceEachRepeatedly("aba", null, new String[0]) = "aba"
6820
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, null) = "aba"
6821
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, new String[]{""}) = "b"
6822
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{null}, new String[]{"a"}) = "aba"
6823
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
6824
     *  (example of how it repeats)
6825
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"
6826
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}) = IllegalStateException
6827
     * </pre>
6828
     *
6829
     * @param text
6830
     *            text to search and replace in, no-op if null
6831
     * @param searchList
6832
     *            the Strings to search for, no-op if null
6833
     * @param replacementList
6834
     *            the Strings to replace them with, no-op if null
6835
     * @return the text with any replacements processed, {@code null} if
6836
     *         null String input
6837
     * @throws IllegalStateException
6838
     *             if the search is repeating and there is an endless loop due
6839
     *             to outputs of one being inputs to another
6840
     * @throws IllegalArgumentException
6841
     *             if the lengths of the arrays are not the same (null is ok,
6842
     *             and/or size 0)
6843
     * @since 2.4
6844
     */
6845
    public static String replaceEachRepeatedly(final String text, final String[] searchList, final String[] replacementList) {
6846 1 1. replaceEachRepeatedly : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly → KILLED
        return replaceEach(text, searchList, replacementList, true, ArrayUtils.getLength(searchList));
6847
    }
6848
6849
    /**
6850
     * Replaces the first substring of the text string that matches the given regular expression
6851
     * with the given replacement.
6852
     *
6853
     * This method is a {@code null} safe equivalent to:
6854
     * <ul>
6855
     *  <li>{@code text.replaceFirst(regex, replacement)}</li>
6856
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(replacement)}</li>
6857
     * </ul>
6858
     *
6859
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6860
     *
6861
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
6862
     * To use the DOTALL option prepend {@code "(?s)"} to the regex.
6863
     * DOTALL is also known as single-line mode in Perl.</p>
6864
     *
6865
     * <pre>
6866
     * StringUtils.replaceFirst(null, *, *)       = null
6867
     * StringUtils.replaceFirst("any", (String) null, *)   = "any"
6868
     * StringUtils.replaceFirst("any", *, null)   = "any"
6869
     * StringUtils.replaceFirst("", "", "zzz")    = "zzz"
6870
     * StringUtils.replaceFirst("", ".*", "zzz")  = "zzz"
6871
     * StringUtils.replaceFirst("", ".+", "zzz")  = ""
6872
     * StringUtils.replaceFirst("abc", "", "ZZ")  = "ZZabc"
6873
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\n&lt;__&gt;"
6874
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
6875
     * StringUtils.replaceFirst("ABCabc123", "[a-z]", "_")          = "ABC_bc123"
6876
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "_")  = "ABC_123abc"
6877
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "")   = "ABC123abc"
6878
     * StringUtils.replaceFirst("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum  dolor   sit"
6879
     * </pre>
6880
     *
6881
     * @param text  text to search and replace in, may be null
6882
     * @param regex  the regular expression to which this string is to be matched
6883
     * @param replacement  the string to be substituted for the first match
6884
     * @return  the text with the first replacement processed,
6885
     *              {@code null} if null String input
6886
     *
6887
     * @throws  java.util.regex.PatternSyntaxException
6888
     *              if the regular expression's syntax is invalid
6889
     *
6890
     * @see String#replaceFirst(String, String)
6891
     * @see java.util.regex.Pattern
6892
     * @see java.util.regex.Pattern#DOTALL
6893
     * @since 3.5
6894
     *
6895
     * @deprecated Moved to RegExUtils.
6896
     */
6897
    @Deprecated
6898
    public static String replaceFirst(final String text, final String regex, final String replacement) {
6899 1 1. replaceFirst : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceFirst → KILLED
        return RegExUtils.replaceFirst(text, regex, replacement);
6900
    }
6901
6902
    /**
6903
     * Case insensitively replaces all occurrences of a String within another String.
6904
     *
6905
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6906
     *
6907
     * <pre>
6908
     * StringUtils.replaceIgnoreCase(null, *, *)        = null
6909
     * StringUtils.replaceIgnoreCase("", *, *)          = ""
6910
     * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
6911
     * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
6912
     * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
6913
     * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
6914
     * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
6915
     * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
6916
     * </pre>
6917
     *
6918
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
6919
     * @param text  text to search and replace in, may be null
6920
     * @param searchString  the String to search for (case-insensitive), may be null
6921
     * @param replacement  the String to replace it with, may be null
6922
     * @return the text with any replacements processed,
6923
     *  {@code null} if null String input
6924
     * @since 3.5
6925
     */
6926
     public static String replaceIgnoreCase(final String text, final String searchString, final String replacement) {
6927 1 1. replaceIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceIgnoreCase → KILLED
         return replaceIgnoreCase(text, searchString, replacement, -1);
6928
     }
6929
6930
    /**
6931
     * Case insensitively replaces a String with another String inside a larger String,
6932
     * for the first {@code max} values of the search String.
6933
     *
6934
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6935
     *
6936
     * <pre>
6937
     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
6938
     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
6939
     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
6940
     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
6941
     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
6942
     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
6943
     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
6944
     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
6945
     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
6946
     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
6947
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
6948
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
6949
     * </pre>
6950
     *
6951
     * @param text  text to search and replace in, may be null
6952
     * @param searchString  the String to search for (case-insensitive), may be null
6953
     * @param replacement  the String to replace it with, may be null
6954
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
6955
     * @return the text with any replacements processed,
6956
     *  {@code null} if null String input
6957
     * @since 3.5
6958
     */
6959
    public static String replaceIgnoreCase(final String text, final String searchString, final String replacement, final int max) {
6960 1 1. replaceIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceIgnoreCase → KILLED
        return replace(text, searchString, replacement, max, true);
6961
    }
6962
6963
    /**
6964
     * Replaces a String with another String inside a larger String, once.
6965
     *
6966
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6967
     *
6968
     * <pre>
6969
     * StringUtils.replaceOnce(null, *, *)        = null
6970
     * StringUtils.replaceOnce("", *, *)          = ""
6971
     * StringUtils.replaceOnce("any", null, *)    = "any"
6972
     * StringUtils.replaceOnce("any", *, null)    = "any"
6973
     * StringUtils.replaceOnce("any", "", *)      = "any"
6974
     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
6975
     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
6976
     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
6977
     * </pre>
6978
     *
6979
     * @see #replace(String text, String searchString, String replacement, int max)
6980
     * @param text  text to search and replace in, may be null
6981
     * @param searchString  the String to search for, may be null
6982
     * @param replacement  the String to replace with, may be null
6983
     * @return the text with any replacements processed,
6984
     *  {@code null} if null String input
6985
     */
6986
    public static String replaceOnce(final String text, final String searchString, final String replacement) {
6987 1 1. replaceOnce : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceOnce → KILLED
        return replace(text, searchString, replacement, 1);
6988
    }
6989
6990
    /**
6991
     * Case insensitively replaces a String with another String inside a larger String, once.
6992
     *
6993
     * <p>A {@code null} reference passed to this method is a no-op.</p>
6994
     *
6995
     * <pre>
6996
     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
6997
     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
6998
     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
6999
     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
7000
     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
7001
     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
7002
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
7003
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
7004
     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
7005
     * </pre>
7006
     *
7007
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
7008
     * @param text  text to search and replace in, may be null
7009
     * @param searchString  the String to search for (case-insensitive), may be null
7010
     * @param replacement  the String to replace with, may be null
7011
     * @return the text with any replacements processed,
7012
     *  {@code null} if null String input
7013
     * @since 3.5
7014
     */
7015
    public static String replaceOnceIgnoreCase(final String text, final String searchString, final String replacement) {
7016 1 1. replaceOnceIgnoreCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase → KILLED
        return replaceIgnoreCase(text, searchString, replacement, 1);
7017
    }
7018
7019
    /**
7020
     * Replaces each substring of the source String that matches the given regular expression with the given
7021
     * replacement using the {@link Pattern#DOTALL} option. DOTALL is also known as single-line mode in Perl.
7022
     *
7023
     * This call is a {@code null} safe equivalent to:
7024
     * <ul>
7025
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, replacement)}</li>
7026
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement)}</li>
7027
     * </ul>
7028
     *
7029
     * <p>A {@code null} reference passed to this method is a no-op.</p>
7030
     *
7031
     * <pre>
7032
     * StringUtils.replacePattern(null, *, *)       = null
7033
     * StringUtils.replacePattern("any", (String) null, *)   = "any"
7034
     * StringUtils.replacePattern("any", *, null)   = "any"
7035
     * StringUtils.replacePattern("", "", "zzz")    = "zzz"
7036
     * StringUtils.replacePattern("", ".*", "zzz")  = "zzz"
7037
     * StringUtils.replacePattern("", ".+", "zzz")  = ""
7038
     * StringUtils.replacePattern("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")       = "z"
7039
     * StringUtils.replacePattern("ABCabc123", "[a-z]", "_")       = "ABC___123"
7040
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
7041
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
7042
     * StringUtils.replacePattern("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
7043
     * </pre>
7044
     *
7045
     * @param source
7046
     *            the source string
7047
     * @param regex
7048
     *            the regular expression to which this string is to be matched
7049
     * @param replacement
7050
     *            the string to be substituted for each match
7051
     * @return The resulting {@link String}
7052
     * @see #replaceAll(String, String, String)
7053
     * @see String#replaceAll(String, String)
7054
     * @see Pattern#DOTALL
7055
     * @since 3.2
7056
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
7057
     *
7058
     * @deprecated Moved to RegExUtils.
7059
     */
7060
    @Deprecated
7061
    public static String replacePattern(final String source, final String regex, final String replacement) {
7062 1 1. replacePattern : replaced return value with "" for org/apache/commons/lang3/StringUtils::replacePattern → KILLED
        return RegExUtils.replacePattern(source, regex, replacement);
7063
    }
7064
7065
    /**
7066
     * Reverses a String as per {@link StringBuilder#reverse()}.
7067
     *
7068
     * <p>A {@code null} String returns {@code null}.</p>
7069
     *
7070
     * <pre>
7071
     * StringUtils.reverse(null)  = null
7072
     * StringUtils.reverse("")    = ""
7073
     * StringUtils.reverse("bat") = "tab"
7074
     * </pre>
7075
     *
7076
     * @param str  the String to reverse, may be null
7077
     * @return the reversed String, {@code null} if null String input
7078
     */
7079
    public static String reverse(final String str) {
7080 1 1. reverse : negated conditional → KILLED
        if (str == null) {
7081 1 1. reverse : replaced return value with "" for org/apache/commons/lang3/StringUtils::reverse → KILLED
            return null;
7082
        }
7083 1 1. reverse : replaced return value with "" for org/apache/commons/lang3/StringUtils::reverse → KILLED
        return new StringBuilder(str).reverse().toString();
7084
    }
7085
7086
    /**
7087
     * Reverses a String that is delimited by a specific character.
7088
     *
7089
     * <p>The Strings between the delimiters are not reversed.
7090
     * Thus java.lang.String becomes String.lang.java (if the delimiter
7091
     * is {@code '.'}).</p>
7092
     *
7093
     * <pre>
7094
     * StringUtils.reverseDelimited(null, *)      = null
7095
     * StringUtils.reverseDelimited("", *)        = ""
7096
     * StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"
7097
     * StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"
7098
     * </pre>
7099
     *
7100
     * @param str  the String to reverse, may be null
7101
     * @param separatorChar  the separator character to use
7102
     * @return the reversed String, {@code null} if null String input
7103
     * @since 2.0
7104
     */
7105
    public static String reverseDelimited(final String str, final char separatorChar) {
7106 1 1. reverseDelimited : negated conditional → KILLED
        if (str == null) {
7107 1 1. reverseDelimited : replaced return value with "" for org/apache/commons/lang3/StringUtils::reverseDelimited → KILLED
            return null;
7108
        }
7109
        // could implement manually, but simple way is to reuse other,
7110
        // probably slower, methods.
7111
        final String[] strs = split(str, separatorChar);
7112 1 1. reverseDelimited : removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED
        ArrayUtils.reverse(strs);
7113 1 1. reverseDelimited : replaced return value with "" for org/apache/commons/lang3/StringUtils::reverseDelimited → KILLED
        return join(strs, separatorChar);
7114
    }
7115
7116
    /**
7117
     * Gets the rightmost {@code len} characters of a String.
7118
     *
7119
     * <p>If {@code len} characters are not available, or the String
7120
     * is {@code null}, the String will be returned without an
7121
     * an exception. An empty String is returned if len is negative.</p>
7122
     *
7123
     * <pre>
7124
     * StringUtils.right(null, *)    = null
7125
     * StringUtils.right(*, -ve)     = ""
7126
     * StringUtils.right("", *)      = ""
7127
     * StringUtils.right("abc", 0)   = ""
7128
     * StringUtils.right("abc", 2)   = "bc"
7129
     * StringUtils.right("abc", 4)   = "abc"
7130
     * </pre>
7131
     *
7132
     * @param str  the String to get the rightmost characters from, may be null
7133
     * @param len  the length of the required String
7134
     * @return the rightmost characters, {@code null} if null String input
7135
     */
7136
    public static String right(final String str, final int len) {
7137 1 1. right : negated conditional → KILLED
        if (str == null) {
7138 1 1. right : replaced return value with "" for org/apache/commons/lang3/StringUtils::right → KILLED
            return null;
7139
        }
7140 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (len < 0) {
7141
            return EMPTY;
7142
        }
7143 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (str.length() <= len) {
7144 1 1. right : replaced return value with "" for org/apache/commons/lang3/StringUtils::right → KILLED
            return str;
7145
        }
7146 2 1. right : Replaced integer subtraction with addition → KILLED
2. right : replaced return value with "" for org/apache/commons/lang3/StringUtils::right → KILLED
        return str.substring(str.length() - len);
7147
    }
7148
7149
    /**
7150
     * Right pad a String with spaces (' ').
7151
     *
7152
     * <p>The String is padded to the size of {@code size}.</p>
7153
     *
7154
     * <pre>
7155
     * StringUtils.rightPad(null, *)   = null
7156
     * StringUtils.rightPad("", 3)     = "   "
7157
     * StringUtils.rightPad("bat", 3)  = "bat"
7158
     * StringUtils.rightPad("bat", 5)  = "bat  "
7159
     * StringUtils.rightPad("bat", 1)  = "bat"
7160
     * StringUtils.rightPad("bat", -1) = "bat"
7161
     * </pre>
7162
     *
7163
     * @param str  the String to pad out, may be null
7164
     * @param size  the size to pad to
7165
     * @return right padded String or original String if no padding is necessary,
7166
     *  {@code null} if null String input
7167
     */
7168
    public static String rightPad(final String str, final int size) {
7169 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
        return rightPad(str, size, ' ');
7170
    }
7171
7172
    /**
7173
     * Right pad a String with a specified character.
7174
     *
7175
     * <p>The String is padded to the size of {@code size}.</p>
7176
     *
7177
     * <pre>
7178
     * StringUtils.rightPad(null, *, *)     = null
7179
     * StringUtils.rightPad("", 3, 'z')     = "zzz"
7180
     * StringUtils.rightPad("bat", 3, 'z')  = "bat"
7181
     * StringUtils.rightPad("bat", 5, 'z')  = "batzz"
7182
     * StringUtils.rightPad("bat", 1, 'z')  = "bat"
7183
     * StringUtils.rightPad("bat", -1, 'z') = "bat"
7184
     * </pre>
7185
     *
7186
     * @param str  the String to pad out, may be null
7187
     * @param size  the size to pad to
7188
     * @param padChar  the character to pad with
7189
     * @return right padded String or original String if no padding is necessary,
7190
     *  {@code null} if null String input
7191
     * @since 2.0
7192
     */
7193
    public static String rightPad(final String str, final int size, final char padChar) {
7194 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
7195 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return null;
7196
        }
7197 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
7198 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
7199 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return str; // returns original String when possible
7200
        }
7201 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
7202 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return rightPad(str, size, String.valueOf(padChar));
7203
        }
7204 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
        return str.concat(repeat(padChar, pads));
7205
    }
7206
7207
    /**
7208
     * Right pad a String with a specified String.
7209
     *
7210
     * <p>The String is padded to the size of {@code size}.</p>
7211
     *
7212
     * <pre>
7213
     * StringUtils.rightPad(null, *, *)      = null
7214
     * StringUtils.rightPad("", 3, "z")      = "zzz"
7215
     * StringUtils.rightPad("bat", 3, "yz")  = "bat"
7216
     * StringUtils.rightPad("bat", 5, "yz")  = "batyz"
7217
     * StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
7218
     * StringUtils.rightPad("bat", 1, "yz")  = "bat"
7219
     * StringUtils.rightPad("bat", -1, "yz") = "bat"
7220
     * StringUtils.rightPad("bat", 5, null)  = "bat  "
7221
     * StringUtils.rightPad("bat", 5, "")    = "bat  "
7222
     * </pre>
7223
     *
7224
     * @param str  the String to pad out, may be null
7225
     * @param size  the size to pad to
7226
     * @param padStr  the String to pad with, null or empty treated as single space
7227
     * @return right padded String or original String if no padding is necessary,
7228
     *  {@code null} if null String input
7229
     */
7230
    public static String rightPad(final String str, final int size, String padStr) {
7231 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
7232 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return null;
7233
        }
7234 1 1. rightPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
7235
            padStr = SPACE;
7236
        }
7237
        final int padLen = padStr.length();
7238
        final int strLen = str.length();
7239 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
7240 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
7241 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return str; // returns original String when possible
7242
        }
7243 3 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
3. rightPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
7244 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return rightPad(str, size, padStr.charAt(0));
7245
        }
7246
7247 1 1. rightPad : negated conditional → KILLED
        if (pads == padLen) {
7248 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return str.concat(padStr);
7249
        }
7250 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads < padLen) {
7251 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
            return str.concat(padStr.substring(0, pads));
7252
        }
7253
        final char[] padding = new char[pads];
7254
        final char[] padChars = padStr.toCharArray();
7255 2 1. rightPad : changed conditional boundary → KILLED
2. rightPad : negated conditional → KILLED
        for (int i = 0; i < pads; i++) {
7256 1 1. rightPad : Replaced integer modulus with multiplication → KILLED
            padding[i] = padChars[i % padLen];
7257
        }
7258 1 1. rightPad : replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED
        return str.concat(new String(padding));
7259
    }
7260
7261
    /**
7262
     * Rotate (circular shift) a String of {@code shift} characters.
7263
     * <ul>
7264
     *  <li>If {@code shift > 0}, right circular shift (ex : ABCDEF =&gt; FABCDE)</li>
7265
     *  <li>If {@code shift < 0}, left circular shift (ex : ABCDEF =&gt; BCDEFA)</li>
7266
     * </ul>
7267
     *
7268
     * <pre>
7269
     * StringUtils.rotate(null, *)        = null
7270
     * StringUtils.rotate("", *)          = ""
7271
     * StringUtils.rotate("abcdefg", 0)   = "abcdefg"
7272
     * StringUtils.rotate("abcdefg", 2)   = "fgabcde"
7273
     * StringUtils.rotate("abcdefg", -2)  = "cdefgab"
7274
     * StringUtils.rotate("abcdefg", 7)   = "abcdefg"
7275
     * StringUtils.rotate("abcdefg", -7)  = "abcdefg"
7276
     * StringUtils.rotate("abcdefg", 9)   = "fgabcde"
7277
     * StringUtils.rotate("abcdefg", -9)  = "cdefgab"
7278
     * </pre>
7279
     *
7280
     * @param str  the String to rotate, may be null
7281
     * @param shift  number of time to shift (positive : right shift, negative : left shift)
7282
     * @return the rotated String,
7283
     *          or the original String if {@code shift == 0},
7284
     *          or {@code null} if null String input
7285
     * @since 3.5
7286
     */
7287
    public static String rotate(final String str, final int shift) {
7288 1 1. rotate : negated conditional → KILLED
        if (str == null) {
7289 1 1. rotate : replaced return value with "" for org/apache/commons/lang3/StringUtils::rotate → KILLED
            return null;
7290
        }
7291
7292
        final int strLen = str.length();
7293 4 1. rotate : Replaced integer modulus with multiplication → SURVIVED
2. rotate : negated conditional → KILLED
3. rotate : negated conditional → KILLED
4. rotate : negated conditional → KILLED
        if (shift == 0 || strLen == 0 || shift % strLen == 0) {
7294 1 1. rotate : replaced return value with "" for org/apache/commons/lang3/StringUtils::rotate → KILLED
            return str;
7295
        }
7296
7297
        final StringBuilder builder = new StringBuilder(strLen);
7298 2 1. rotate : removed negation → KILLED
2. rotate : Replaced integer modulus with multiplication → KILLED
        final int offset = - (shift % strLen);
7299
        builder.append(substring(str, offset));
7300
        builder.append(substring(str, 0, offset));
7301 1 1. rotate : replaced return value with "" for org/apache/commons/lang3/StringUtils::rotate → KILLED
        return builder.toString();
7302
    }
7303
7304
    /**
7305
     * Splits the provided text into an array, using whitespace as the
7306
     * separator.
7307
     * Whitespace is defined by {@link Character#isWhitespace(char)}.
7308
     *
7309
     * <p>The separator is not included in the returned String array.
7310
     * Adjacent separators are treated as one separator.
7311
     * For more control over the split use the StrTokenizer class.</p>
7312
     *
7313
     * <p>A {@code null} input String returns {@code null}.</p>
7314
     *
7315
     * <pre>
7316
     * StringUtils.split(null)       = null
7317
     * StringUtils.split("")         = []
7318
     * StringUtils.split("abc def")  = ["abc", "def"]
7319
     * StringUtils.split("abc  def") = ["abc", "def"]
7320
     * StringUtils.split(" abc ")    = ["abc"]
7321
     * </pre>
7322
     *
7323
     * @param str  the String to parse, may be null
7324
     * @return an array of parsed Strings, {@code null} if null String input
7325
     */
7326
    public static String[] split(final String str) {
7327 1 1. split : replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED
        return split(str, null, -1);
7328
    }
7329
7330
    /**
7331
     * Splits the provided text into an array, separator specified.
7332
     * This is an alternative to using StringTokenizer.
7333
     *
7334
     * <p>The separator is not included in the returned String array.
7335
     * Adjacent separators are treated as one separator.
7336
     * For more control over the split use the StrTokenizer class.</p>
7337
     *
7338
     * <p>A {@code null} input String returns {@code null}.</p>
7339
     *
7340
     * <pre>
7341
     * StringUtils.split(null, *)         = null
7342
     * StringUtils.split("", *)           = []
7343
     * StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
7344
     * StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
7345
     * StringUtils.split("a:b:c", '.')    = ["a:b:c"]
7346
     * StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
7347
     * </pre>
7348
     *
7349
     * @param str  the String to parse, may be null
7350
     * @param separatorChar  the character used as the delimiter
7351
     * @return an array of parsed Strings, {@code null} if null String input
7352
     * @since 2.0
7353
     */
7354
    public static String[] split(final String str, final char separatorChar) {
7355 1 1. split : replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED
        return splitWorker(str, separatorChar, false);
7356
    }
7357
7358
    /**
7359
     * Splits the provided text into an array, separators specified.
7360
     * This is an alternative to using StringTokenizer.
7361
     *
7362
     * <p>The separator is not included in the returned String array.
7363
     * Adjacent separators are treated as one separator.
7364
     * For more control over the split use the StrTokenizer class.</p>
7365
     *
7366
     * <p>A {@code null} input String returns {@code null}.
7367
     * A {@code null} separatorChars splits on whitespace.</p>
7368
     *
7369
     * <pre>
7370
     * StringUtils.split(null, *)         = null
7371
     * StringUtils.split("", *)           = []
7372
     * StringUtils.split("abc def", null) = ["abc", "def"]
7373
     * StringUtils.split("abc def", " ")  = ["abc", "def"]
7374
     * StringUtils.split("abc  def", " ") = ["abc", "def"]
7375
     * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
7376
     * </pre>
7377
     *
7378
     * @param str  the String to parse, may be null
7379
     * @param separatorChars  the characters used as the delimiters,
7380
     *  {@code null} splits on whitespace
7381
     * @return an array of parsed Strings, {@code null} if null String input
7382
     */
7383
    public static String[] split(final String str, final String separatorChars) {
7384 1 1. split : replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED
        return splitWorker(str, separatorChars, -1, false);
7385
    }
7386
7387
    /**
7388
     * Splits the provided text into an array with a maximum length,
7389
     * separators specified.
7390
     *
7391
     * <p>The separator is not included in the returned String array.
7392
     * Adjacent separators are treated as one separator.</p>
7393
     *
7394
     * <p>A {@code null} input String returns {@code null}.
7395
     * A {@code null} separatorChars splits on whitespace.</p>
7396
     *
7397
     * <p>If more than {@code max} delimited substrings are found, the last
7398
     * returned string includes all characters after the first {@code max - 1}
7399
     * returned strings (including separator characters).</p>
7400
     *
7401
     * <pre>
7402
     * StringUtils.split(null, *, *)            = null
7403
     * StringUtils.split("", *, *)              = []
7404
     * StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
7405
     * StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
7406
     * StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
7407
     * StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
7408
     * </pre>
7409
     *
7410
     * @param str  the String to parse, may be null
7411
     * @param separatorChars  the characters used as the delimiters,
7412
     *  {@code null} splits on whitespace
7413
     * @param max  the maximum number of elements to include in the
7414
     *  array. A zero or negative value implies no limit
7415
     * @return an array of parsed Strings, {@code null} if null String input
7416
     */
7417
    public static String[] split(final String str, final String separatorChars, final int max) {
7418 1 1. split : replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED
        return splitWorker(str, separatorChars, max, false);
7419
    }
7420
7421
    /**
7422
     * Splits a String by Character type as returned by
7423
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
7424
     * characters of the same type are returned as complete tokens.
7425
     * <pre>
7426
     * StringUtils.splitByCharacterType(null)         = null
7427
     * StringUtils.splitByCharacterType("")           = []
7428
     * StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
7429
     * StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
7430
     * StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
7431
     * StringUtils.splitByCharacterType("number5")    = ["number", "5"]
7432
     * StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
7433
     * StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
7434
     * StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
7435
     * </pre>
7436
     * @param str the String to split, may be {@code null}
7437
     * @return an array of parsed Strings, {@code null} if null String input
7438
     * @since 2.4
7439
     */
7440
    public static String[] splitByCharacterType(final String str) {
7441 1 1. splitByCharacterType : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterType → KILLED
        return splitByCharacterType(str, false);
7442
    }
7443
7444
    /**
7445
     * <p>Splits a String by Character type as returned by
7446
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
7447
     * characters of the same type are returned as complete tokens, with the
7448
     * following exception: if {@code camelCase} is {@code true},
7449
     * the character of type {@code Character.UPPERCASE_LETTER}, if any,
7450
     * immediately preceding a token of type {@code Character.LOWERCASE_LETTER}
7451
     * will belong to the following token rather than to the preceding, if any,
7452
     * {@code Character.UPPERCASE_LETTER} token.
7453
     * @param str the String to split, may be {@code null}
7454
     * @param camelCase whether to use so-called "camel-case" for letter types
7455
     * @return an array of parsed Strings, {@code null} if null String input
7456
     * @since 2.4
7457
     */
7458
    private static String[] splitByCharacterType(final String str, final boolean camelCase) {
7459 1 1. splitByCharacterType : negated conditional → KILLED
        if (str == null) {
7460
            return null;
7461
        }
7462 1 1. splitByCharacterType : negated conditional → KILLED
        if (str.isEmpty()) {
7463 1 1. splitByCharacterType : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterType → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
7464
        }
7465
        final char[] c = str.toCharArray();
7466
        final List<String> list = new ArrayList<>();
7467
        int tokenStart = 0;
7468
        int currentType = Character.getType(c[tokenStart]);
7469 3 1. splitByCharacterType : Replaced integer addition with subtraction → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : changed conditional boundary → KILLED
        for (int pos = tokenStart + 1; pos < c.length; pos++) {
7470
            final int type = Character.getType(c[pos]);
7471 1 1. splitByCharacterType : negated conditional → KILLED
            if (type == currentType) {
7472
                continue;
7473
            }
7474 3 1. splitByCharacterType : negated conditional → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : negated conditional → KILLED
            if (camelCase && type == Character.LOWERCASE_LETTER && currentType == Character.UPPERCASE_LETTER) {
7475 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                final int newTokenStart = pos - 1;
7476 1 1. splitByCharacterType : negated conditional → KILLED
                if (newTokenStart != tokenStart) {
7477 1 1. splitByCharacterType : Replaced integer subtraction with addition → SURVIVED
                    list.add(new String(c, tokenStart, newTokenStart - tokenStart));
7478
                    tokenStart = newTokenStart;
7479
                }
7480
            } else {
7481 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                list.add(new String(c, tokenStart, pos - tokenStart));
7482
                tokenStart = pos;
7483
            }
7484
            currentType = type;
7485
        }
7486 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
        list.add(new String(c, tokenStart, c.length - tokenStart));
7487 1 1. splitByCharacterType : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterType → KILLED
        return list.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
7488
    }
7489
7490
    /**
7491
     * <p>Splits a String by Character type as returned by
7492
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
7493
     * characters of the same type are returned as complete tokens, with the
7494
     * following exception: the character of type
7495
     * {@code Character.UPPERCASE_LETTER}, if any, immediately
7496
     * preceding a token of type {@code Character.LOWERCASE_LETTER}
7497
     * will belong to the following token rather than to the preceding, if any,
7498
     * {@code Character.UPPERCASE_LETTER} token.
7499
     * <pre>
7500
     * StringUtils.splitByCharacterTypeCamelCase(null)         = null
7501
     * StringUtils.splitByCharacterTypeCamelCase("")           = []
7502
     * StringUtils.splitByCharacterTypeCamelCase("ab de fg")   = ["ab", " ", "de", " ", "fg"]
7503
     * StringUtils.splitByCharacterTypeCamelCase("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
7504
     * StringUtils.splitByCharacterTypeCamelCase("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
7505
     * StringUtils.splitByCharacterTypeCamelCase("number5")    = ["number", "5"]
7506
     * StringUtils.splitByCharacterTypeCamelCase("fooBar")     = ["foo", "Bar"]
7507
     * StringUtils.splitByCharacterTypeCamelCase("foo200Bar")  = ["foo", "200", "Bar"]
7508
     * StringUtils.splitByCharacterTypeCamelCase("ASFRules")   = ["ASF", "Rules"]
7509
     * </pre>
7510
     * @param str the String to split, may be {@code null}
7511
     * @return an array of parsed Strings, {@code null} if null String input
7512
     * @since 2.4
7513
     */
7514
    public static String[] splitByCharacterTypeCamelCase(final String str) {
7515 1 1. splitByCharacterTypeCamelCase : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase → KILLED
        return splitByCharacterType(str, true);
7516
    }
7517
7518
    /**
7519
     * <p>Splits the provided text into an array, separator string specified.
7520
     *
7521
     * <p>The separator(s) will not be included in the returned String array.
7522
     * Adjacent separators are treated as one separator.</p>
7523
     *
7524
     * <p>A {@code null} input String returns {@code null}.
7525
     * A {@code null} separator splits on whitespace.</p>
7526
     *
7527
     * <pre>
7528
     * StringUtils.splitByWholeSeparator(null, *)               = null
7529
     * StringUtils.splitByWholeSeparator("", *)                 = []
7530
     * StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
7531
     * StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
7532
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
7533
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
7534
     * </pre>
7535
     *
7536
     * @param str  the String to parse, may be null
7537
     * @param separator  String containing the String to be used as a delimiter,
7538
     *  {@code null} splits on whitespace
7539
     * @return an array of parsed Strings, {@code null} if null String was input
7540
     */
7541
    public static String[] splitByWholeSeparator(final String str, final String separator) {
7542 1 1. splitByWholeSeparator : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparator → KILLED
        return splitByWholeSeparatorWorker(str, separator, -1, false);
7543
    }
7544
7545
    /**
7546
     * Splits the provided text into an array, separator string specified.
7547
     * Returns a maximum of {@code max} substrings.
7548
     *
7549
     * <p>The separator(s) will not be included in the returned String array.
7550
     * Adjacent separators are treated as one separator.</p>
7551
     *
7552
     * <p>A {@code null} input String returns {@code null}.
7553
     * A {@code null} separator splits on whitespace.</p>
7554
     *
7555
     * <pre>
7556
     * StringUtils.splitByWholeSeparator(null, *, *)               = null
7557
     * StringUtils.splitByWholeSeparator("", *, *)                 = []
7558
     * StringUtils.splitByWholeSeparator("ab de fg", null, 0)      = ["ab", "de", "fg"]
7559
     * StringUtils.splitByWholeSeparator("ab   de fg", null, 0)    = ["ab", "de", "fg"]
7560
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
7561
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
7562
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
7563
     * </pre>
7564
     *
7565
     * @param str  the String to parse, may be null
7566
     * @param separator  String containing the String to be used as a delimiter,
7567
     *  {@code null} splits on whitespace
7568
     * @param max  the maximum number of elements to include in the returned
7569
     *  array. A zero or negative value implies no limit.
7570
     * @return an array of parsed Strings, {@code null} if null String was input
7571
     */
7572
    public static String[] splitByWholeSeparator( final String str, final String separator, final int max) {
7573 1 1. splitByWholeSeparator : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparator → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, false);
7574
    }
7575
7576
    /**
7577
     * Splits the provided text into an array, separator string specified.
7578
     *
7579
     * <p>The separator is not included in the returned String array.
7580
     * Adjacent separators are treated as separators for empty tokens.
7581
     * For more control over the split use the StrTokenizer class.</p>
7582
     *
7583
     * <p>A {@code null} input String returns {@code null}.
7584
     * A {@code null} separator splits on whitespace.</p>
7585
     *
7586
     * <pre>
7587
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *)               = null
7588
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *)                 = []
7589
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null)      = ["ab", "de", "fg"]
7590
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null)    = ["ab", "", "", "de", "fg"]
7591
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
7592
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
7593
     * </pre>
7594
     *
7595
     * @param str  the String to parse, may be null
7596
     * @param separator  String containing the String to be used as a delimiter,
7597
     *  {@code null} splits on whitespace
7598
     * @return an array of parsed Strings, {@code null} if null String was input
7599
     * @since 2.4
7600
     */
7601
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator) {
7602 1 1. splitByWholeSeparatorPreserveAllTokens : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens → KILLED
        return splitByWholeSeparatorWorker(str, separator, -1, true);
7603
    }
7604
7605
    /**
7606
     * Splits the provided text into an array, separator string specified.
7607
     * Returns a maximum of {@code max} substrings.
7608
     *
7609
     * <p>The separator is not included in the returned String array.
7610
     * Adjacent separators are treated as separators for empty tokens.
7611
     * For more control over the split use the StrTokenizer class.</p>
7612
     *
7613
     * <p>A {@code null} input String returns {@code null}.
7614
     * A {@code null} separator splits on whitespace.</p>
7615
     *
7616
     * <pre>
7617
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *, *)               = null
7618
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *, *)                 = []
7619
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 0)      = ["ab", "de", "fg"]
7620
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 0)    = ["ab", "", "", "de", "fg"]
7621
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
7622
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
7623
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
7624
     * </pre>
7625
     *
7626
     * @param str  the String to parse, may be null
7627
     * @param separator  String containing the String to be used as a delimiter,
7628
     *  {@code null} splits on whitespace
7629
     * @param max  the maximum number of elements to include in the returned
7630
     *  array. A zero or negative value implies no limit.
7631
     * @return an array of parsed Strings, {@code null} if null String was input
7632
     * @since 2.4
7633
     */
7634
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator, final int max) {
7635 1 1. splitByWholeSeparatorPreserveAllTokens : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, true);
7636
    }
7637
7638
    /**
7639
     * Performs the logic for the {@code splitByWholeSeparatorPreserveAllTokens} methods.
7640
     *
7641
     * @param str  the String to parse, may be {@code null}
7642
     * @param separator  String containing the String to be used as a delimiter,
7643
     *  {@code null} splits on whitespace
7644
     * @param max  the maximum number of elements to include in the returned
7645
     *  array. A zero or negative value implies no limit.
7646
     * @param preserveAllTokens if {@code true}, adjacent separators are
7647
     * treated as empty token separators; if {@code false}, adjacent
7648
     * separators are treated as one separator.
7649
     * @return an array of parsed Strings, {@code null} if null String input
7650
     * @since 2.4
7651
     */
7652
    private static String[] splitByWholeSeparatorWorker(
7653
            final String str, final String separator, final int max, final boolean preserveAllTokens) {
7654 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (str == null) {
7655
            return null;
7656
        }
7657
7658
        final int len = str.length();
7659
7660 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (len == 0) {
7661 1 1. splitByWholeSeparatorWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
7662
        }
7663
7664 2 1. splitByWholeSeparatorWorker : negated conditional → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (separator == null || EMPTY.equals(separator)) {
7665
            // Split on whitespace.
7666 1 1. splitByWholeSeparatorWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker → KILLED
            return splitWorker(str, null, max, preserveAllTokens);
7667
        }
7668
7669
        final int separatorLength = separator.length();
7670
7671
        final ArrayList<String> substrings = new ArrayList<>();
7672
        int numberOfSubstrings = 0;
7673
        int beg = 0;
7674
        int end = 0;
7675 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        while (end < len) {
7676
            end = str.indexOf(separator, beg);
7677
7678 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
            if (end > -1) {
7679 2 1. splitByWholeSeparatorWorker : changed conditional boundary → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
                if (end > beg) {
7680 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                    numberOfSubstrings += 1;
7681
7682 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (numberOfSubstrings == max) {
7683
                        end = len;
7684
                        substrings.add(str.substring(beg));
7685
                    } else {
7686
                        // The following is OK, because String.substring( beg, end ) excludes
7687
                        // the character at the position 'end'.
7688
                        substrings.add(str.substring(beg, end));
7689
7690
                        // Set the starting point for the next search.
7691
                        // The following is equivalent to beg = end + (separatorLength - 1) + 1,
7692
                        // which is the right calculation:
7693 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → KILLED
                        beg = end + separatorLength;
7694
                    }
7695
                } else {
7696
                    // We found a consecutive occurrence of the separator, so skip it.
7697 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (preserveAllTokens) {
7698 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                        numberOfSubstrings += 1;
7699 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                        if (numberOfSubstrings == max) {
7700
                            end = len;
7701
                            substrings.add(str.substring(beg));
7702
                        } else {
7703
                            substrings.add(EMPTY);
7704
                        }
7705
                    }
7706 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → TIMED_OUT
                    beg = end + separatorLength;
7707
                }
7708
            } else {
7709
                // String.substring( beg ) goes from 'beg' to the end of the String.
7710
                substrings.add(str.substring(beg));
7711
                end = len;
7712
            }
7713
        }
7714
7715 1 1. splitByWholeSeparatorWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker → KILLED
        return substrings.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
7716
    }
7717
7718
    /**
7719
     * Splits the provided text into an array, using whitespace as the
7720
     * separator, preserving all tokens, including empty tokens created by
7721
     * adjacent separators. This is an alternative to using StringTokenizer.
7722
     * Whitespace is defined by {@link Character#isWhitespace(char)}.
7723
     *
7724
     * <p>The separator is not included in the returned String array.
7725
     * Adjacent separators are treated as separators for empty tokens.
7726
     * For more control over the split use the StrTokenizer class.</p>
7727
     *
7728
     * <p>A {@code null} input String returns {@code null}.</p>
7729
     *
7730
     * <pre>
7731
     * StringUtils.splitPreserveAllTokens(null)       = null
7732
     * StringUtils.splitPreserveAllTokens("")         = []
7733
     * StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
7734
     * StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
7735
     * StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
7736
     * </pre>
7737
     *
7738
     * @param str  the String to parse, may be {@code null}
7739
     * @return an array of parsed Strings, {@code null} if null String input
7740
     * @since 2.1
7741
     */
7742
    public static String[] splitPreserveAllTokens(final String str) {
7743 1 1. splitPreserveAllTokens : replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED
        return splitWorker(str, null, -1, true);
7744
    }
7745
7746
    /**
7747
     * Splits the provided text into an array, separator specified,
7748
     * preserving all tokens, including empty tokens created by adjacent
7749
     * separators. This is an alternative to using StringTokenizer.
7750
     *
7751
     * <p>The separator is not included in the returned String array.
7752
     * Adjacent separators are treated as separators for empty tokens.
7753
     * For more control over the split use the StrTokenizer class.</p>
7754
     *
7755
     * <p>A {@code null} input String returns {@code null}.</p>
7756
     *
7757
     * <pre>
7758
     * StringUtils.splitPreserveAllTokens(null, *)         = null
7759
     * StringUtils.splitPreserveAllTokens("", *)           = []
7760
     * StringUtils.splitPreserveAllTokens("a.b.c", '.')    = ["a", "b", "c"]
7761
     * StringUtils.splitPreserveAllTokens("a..b.c", '.')   = ["a", "", "b", "c"]
7762
     * StringUtils.splitPreserveAllTokens("a:b:c", '.')    = ["a:b:c"]
7763
     * StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"]
7764
     * StringUtils.splitPreserveAllTokens("a b c", ' ')    = ["a", "b", "c"]
7765
     * StringUtils.splitPreserveAllTokens("a b c ", ' ')   = ["a", "b", "c", ""]
7766
     * StringUtils.splitPreserveAllTokens("a b c  ", ' ')   = ["a", "b", "c", "", ""]
7767
     * StringUtils.splitPreserveAllTokens(" a b c", ' ')   = ["", a", "b", "c"]
7768
     * StringUtils.splitPreserveAllTokens("  a b c", ' ')  = ["", "", a", "b", "c"]
7769
     * StringUtils.splitPreserveAllTokens(" a b c ", ' ')  = ["", a", "b", "c", ""]
7770
     * </pre>
7771
     *
7772
     * @param str  the String to parse, may be {@code null}
7773
     * @param separatorChar  the character used as the delimiter,
7774
     *  {@code null} splits on whitespace
7775
     * @return an array of parsed Strings, {@code null} if null String input
7776
     * @since 2.1
7777
     */
7778
    public static String[] splitPreserveAllTokens(final String str, final char separatorChar) {
7779 1 1. splitPreserveAllTokens : replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED
        return splitWorker(str, separatorChar, true);
7780
    }
7781
7782
    /**
7783
     * Splits the provided text into an array, separators specified,
7784
     * preserving all tokens, including empty tokens created by adjacent
7785
     * separators. This is an alternative to using StringTokenizer.
7786
     *
7787
     * <p>The separator is not included in the returned String array.
7788
     * Adjacent separators are treated as separators for empty tokens.
7789
     * For more control over the split use the StrTokenizer class.</p>
7790
     *
7791
     * <p>A {@code null} input String returns {@code null}.
7792
     * A {@code null} separatorChars splits on whitespace.</p>
7793
     *
7794
     * <pre>
7795
     * StringUtils.splitPreserveAllTokens(null, *)           = null
7796
     * StringUtils.splitPreserveAllTokens("", *)             = []
7797
     * StringUtils.splitPreserveAllTokens("abc def", null)   = ["abc", "def"]
7798
     * StringUtils.splitPreserveAllTokens("abc def", " ")    = ["abc", "def"]
7799
     * StringUtils.splitPreserveAllTokens("abc  def", " ")   = ["abc", "", def"]
7800
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":")   = ["ab", "cd", "ef"]
7801
     * StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":")  = ["ab", "cd", "ef", ""]
7802
     * StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""]
7803
     * StringUtils.splitPreserveAllTokens("ab::cd:ef", ":")  = ["ab", "", cd", "ef"]
7804
     * StringUtils.splitPreserveAllTokens(":cd:ef", ":")     = ["", cd", "ef"]
7805
     * StringUtils.splitPreserveAllTokens("::cd:ef", ":")    = ["", "", cd", "ef"]
7806
     * StringUtils.splitPreserveAllTokens(":cd:ef:", ":")    = ["", cd", "ef", ""]
7807
     * </pre>
7808
     *
7809
     * @param str  the String to parse, may be {@code null}
7810
     * @param separatorChars  the characters used as the delimiters,
7811
     *  {@code null} splits on whitespace
7812
     * @return an array of parsed Strings, {@code null} if null String input
7813
     * @since 2.1
7814
     */
7815
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars) {
7816 1 1. splitPreserveAllTokens : replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED
        return splitWorker(str, separatorChars, -1, true);
7817
    }
7818
7819
    /**
7820
     * Splits the provided text into an array with a maximum length,
7821
     * separators specified, preserving all tokens, including empty tokens
7822
     * created by adjacent separators.
7823
     *
7824
     * <p>The separator is not included in the returned String array.
7825
     * Adjacent separators are treated as separators for empty tokens.
7826
     * Adjacent separators are treated as one separator.</p>
7827
     *
7828
     * <p>A {@code null} input String returns {@code null}.
7829
     * A {@code null} separatorChars splits on whitespace.</p>
7830
     *
7831
     * <p>If more than {@code max} delimited substrings are found, the last
7832
     * returned string includes all characters after the first {@code max - 1}
7833
     * returned strings (including separator characters).</p>
7834
     *
7835
     * <pre>
7836
     * StringUtils.splitPreserveAllTokens(null, *, *)            = null
7837
     * StringUtils.splitPreserveAllTokens("", *, *)              = []
7838
     * StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "de", "fg"]
7839
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "", "", "de", "fg"]
7840
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
7841
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
7842
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
7843
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
7844
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
7845
     * </pre>
7846
     *
7847
     * @param str  the String to parse, may be {@code null}
7848
     * @param separatorChars  the characters used as the delimiters,
7849
     *  {@code null} splits on whitespace
7850
     * @param max  the maximum number of elements to include in the
7851
     *  array. A zero or negative value implies no limit
7852
     * @return an array of parsed Strings, {@code null} if null String input
7853
     * @since 2.1
7854
     */
7855
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
7856 1 1. splitPreserveAllTokens : replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED
        return splitWorker(str, separatorChars, max, true);
7857
    }
7858
7859
    /**
7860
     * Performs the logic for the {@code split} and
7861
     * {@code splitPreserveAllTokens} methods that do not return a
7862
     * maximum array length.
7863
     *
7864
     * @param str  the String to parse, may be {@code null}
7865
     * @param separatorChar the separate character
7866
     * @param preserveAllTokens if {@code true}, adjacent separators are
7867
     * treated as empty token separators; if {@code false}, adjacent
7868
     * separators are treated as one separator.
7869
     * @return an array of parsed Strings, {@code null} if null String input
7870
     */
7871
    private static String[] splitWorker(final String str, final char separatorChar, final boolean preserveAllTokens) {
7872
        // Performance tuned for 2.0 (JDK1.4)
7873
7874 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
7875
            return null;
7876
        }
7877
        final int len = str.length();
7878 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
7879 1 1. splitWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
7880
        }
7881
        final List<String> list = new ArrayList<>();
7882
        int i = 0;
7883
        int start = 0;
7884
        boolean match = false;
7885
        boolean lastMatch = false;
7886 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : changed conditional boundary → KILLED
        while (i < len) {
7887 1 1. splitWorker : negated conditional → KILLED
            if (str.charAt(i) == separatorChar) {
7888 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                if (match || preserveAllTokens) {
7889
                    list.add(str.substring(start, i));
7890
                    match = false;
7891
                    lastMatch = true;
7892
                }
7893 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                start = ++i;
7894
                continue;
7895
            }
7896
            lastMatch = false;
7897
            match = true;
7898
            i++;
7899
        }
7900 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
7901
            list.add(str.substring(start, i));
7902
        }
7903 1 1. splitWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED
        return list.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
7904
    }
7905
7906
    /**
7907
     * Performs the logic for the {@code split} and
7908
     * {@code splitPreserveAllTokens} methods that return a maximum array
7909
     * length.
7910
     *
7911
     * @param str  the String to parse, may be {@code null}
7912
     * @param separatorChars the separate character
7913
     * @param max  the maximum number of elements to include in the
7914
     *  array. A zero or negative value implies no limit.
7915
     * @param preserveAllTokens if {@code true}, adjacent separators are
7916
     * treated as empty token separators; if {@code false}, adjacent
7917
     * separators are treated as one separator.
7918
     * @return an array of parsed Strings, {@code null} if null String input
7919
     */
7920
    private static String[] splitWorker(final String str, final String separatorChars, final int max, final boolean preserveAllTokens) {
7921
        // Performance tuned for 2.0 (JDK1.4)
7922
        // Direct code is quicker than StringTokenizer.
7923
        // Also, StringTokenizer uses isSpace() not isWhitespace()
7924
7925 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
7926
            return null;
7927
        }
7928
        final int len = str.length();
7929 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
7930 1 1. splitWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
7931
        }
7932
        final List<String> list = new ArrayList<>();
7933
        int sizePlus1 = 1;
7934
        int i = 0;
7935
        int start = 0;
7936
        boolean match = false;
7937
        boolean lastMatch = false;
7938 1 1. splitWorker : negated conditional → KILLED
        if (separatorChars == null) {
7939
            // Null separator means use whitespace
7940 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
7941 1 1. splitWorker : negated conditional → KILLED
                if (Character.isWhitespace(str.charAt(i))) {
7942 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
7943
                        lastMatch = true;
7944 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
7945
                            i = len;
7946
                            lastMatch = false;
7947
                        }
7948
                        list.add(str.substring(start, i));
7949
                        match = false;
7950
                    }
7951 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
7952
                    continue;
7953
                }
7954
                lastMatch = false;
7955
                match = true;
7956 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
7957
            }
7958 1 1. splitWorker : negated conditional → SURVIVED
        } else if (separatorChars.length() == 1) {
7959
            // Optimise 1 character case
7960
            final char sep = separatorChars.charAt(0);
7961 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : changed conditional boundary → KILLED
            while (i < len) {
7962 1 1. splitWorker : negated conditional → KILLED
                if (str.charAt(i) == sep) {
7963 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
7964
                        lastMatch = true;
7965 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
7966
                            i = len;
7967
                            lastMatch = false;
7968
                        }
7969
                        list.add(str.substring(start, i));
7970
                        match = false;
7971
                    }
7972 1 1. splitWorker : Changed increment from 1 to -1 → MEMORY_ERROR
                    start = ++i;
7973
                    continue;
7974
                }
7975
                lastMatch = false;
7976
                match = true;
7977
                i++;
7978
            }
7979
        } else {
7980
            // standard case
7981 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : changed conditional boundary → KILLED
            while (i < len) {
7982 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
                if (separatorChars.indexOf(str.charAt(i)) >= 0) {
7983 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
7984
                        lastMatch = true;
7985 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : Changed increment from 1 to -1 → KILLED
                        if (sizePlus1++ == max) {
7986
                            i = len;
7987
                            lastMatch = false;
7988
                        }
7989
                        list.add(str.substring(start, i));
7990
                        match = false;
7991
                    }
7992 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
7993
                    continue;
7994
                }
7995
                lastMatch = false;
7996
                match = true;
7997
                i++;
7998
            }
7999
        }
8000 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
8001
            list.add(str.substring(start, i));
8002
        }
8003 1 1. splitWorker : replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED
        return list.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
8004
    }
8005
8006
    /**
8007
     * Check if a CharSequence starts with a specified prefix.
8008
     *
8009
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8010
     * references are considered to be equal. The comparison is case-sensitive.</p>
8011
     *
8012
     * <pre>
8013
     * StringUtils.startsWith(null, null)      = true
8014
     * StringUtils.startsWith(null, "abc")     = false
8015
     * StringUtils.startsWith("abcdef", null)  = false
8016
     * StringUtils.startsWith("abcdef", "abc") = true
8017
     * StringUtils.startsWith("ABCDEF", "abc") = false
8018
     * </pre>
8019
     *
8020
     * @see String#startsWith(String)
8021
     * @param str  the CharSequence to check, may be null
8022
     * @param prefix the prefix to find, may be null
8023
     * @return {@code true} if the CharSequence starts with the prefix, case-sensitive, or
8024
     *  both {@code null}
8025
     * @since 2.4
8026
     * @since 3.0 Changed signature from startsWith(String, String) to startsWith(CharSequence, CharSequence)
8027
     */
8028
    public static boolean startsWith(final CharSequence str, final CharSequence prefix) {
8029 2 1. startsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED
2. startsWith : replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWith → KILLED
        return startsWith(str, prefix, false);
8030
    }
8031
8032
    /**
8033
     * Check if a CharSequence starts with a specified prefix (optionally case insensitive).
8034
     *
8035
     * @see String#startsWith(String)
8036
     * @param str  the CharSequence to check, may be null
8037
     * @param prefix the prefix to find, may be null
8038
     * @param ignoreCase indicates whether the compare should ignore case
8039
     *  (case-insensitive) or not.
8040
     * @return {@code true} if the CharSequence starts with the prefix or
8041
     *  both {@code null}
8042
     */
8043
    private static boolean startsWith(final CharSequence str, final CharSequence prefix, final boolean ignoreCase) {
8044 2 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
        if (str == null || prefix == null) {
8045 2 1. startsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED
2. startsWith : negated conditional → KILLED
            return str == prefix;
8046
        }
8047
        // Get length once instead of twice in the unlikely case that it changes.
8048
        final int preLen = prefix.length();
8049 2 1. startsWith : negated conditional → KILLED
2. startsWith : changed conditional boundary → KILLED
        if (preLen > str.length()) {
8050 1 1. startsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED
            return false;
8051
        }
8052 2 1. startsWith : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED
2. startsWith : replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWith → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, 0, prefix, 0, preLen);
8053
    }
8054
8055
    /**
8056
     * Check if a CharSequence starts with any of the provided case-sensitive prefixes.
8057
     *
8058
     * <pre>
8059
     * StringUtils.startsWithAny(null, null)      = false
8060
     * StringUtils.startsWithAny(null, new String[] {"abc"})  = false
8061
     * StringUtils.startsWithAny("abcxyz", null)     = false
8062
     * StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
8063
     * StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
8064
     * StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8065
     * StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
8066
     * StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
8067
     * </pre>
8068
     *
8069
     * @param sequence the CharSequence to check, may be null
8070
     * @param searchStrings the case-sensitive CharSequence prefixes, may be empty or contain {@code null}
8071
     * @see StringUtils#startsWith(CharSequence, CharSequence)
8072
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8073
     *   the input {@code sequence} begins with any of the provided case-sensitive {@code searchStrings}.
8074
     * @since 2.5
8075
     * @since 3.0 Changed signature from startsWithAny(String, String[]) to startsWithAny(CharSequence, CharSequence...)
8076
     */
8077
    public static boolean startsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8078 2 1. startsWithAny : negated conditional → KILLED
2. startsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8079 1 1. startsWithAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWithAny → KILLED
            return false;
8080
        }
8081
        for (final CharSequence searchString : searchStrings) {
8082 1 1. startsWithAny : negated conditional → KILLED
            if (startsWith(sequence, searchString)) {
8083 1 1. startsWithAny : replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWithAny → KILLED
                return true;
8084
            }
8085
        }
8086 1 1. startsWithAny : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWithAny → KILLED
        return false;
8087
    }
8088
8089
    /**
8090
     * Case insensitive check if a CharSequence starts with a specified prefix.
8091
     *
8092
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8093
     * references are considered to be equal. The comparison is case insensitive.</p>
8094
     *
8095
     * <pre>
8096
     * StringUtils.startsWithIgnoreCase(null, null)      = true
8097
     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
8098
     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
8099
     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
8100
     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
8101
     * </pre>
8102
     *
8103
     * @see String#startsWith(String)
8104
     * @param str  the CharSequence to check, may be null
8105
     * @param prefix the prefix to find, may be null
8106
     * @return {@code true} if the CharSequence starts with the prefix, case-insensitive, or
8107
     *  both {@code null}
8108
     * @since 2.4
8109
     * @since 3.0 Changed signature from startsWithIgnoreCase(String, String) to startsWithIgnoreCase(CharSequence, CharSequence)
8110
     */
8111
    public static boolean startsWithIgnoreCase(final CharSequence str, final CharSequence prefix) {
8112 2 1. startsWithIgnoreCase : replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWithIgnoreCase → KILLED
2. startsWithIgnoreCase : replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWithIgnoreCase → KILLED
        return startsWith(str, prefix, true);
8113
    }
8114
8115
    /**
8116
     * Strips whitespace from the start and end of a String.
8117
     *
8118
     * <p>This is similar to {@link #trim(String)} but removes whitespace.
8119
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
8120
     *
8121
     * <p>A {@code null} input String returns {@code null}.</p>
8122
     *
8123
     * <pre>
8124
     * StringUtils.strip(null)     = null
8125
     * StringUtils.strip("")       = ""
8126
     * StringUtils.strip("   ")    = ""
8127
     * StringUtils.strip("abc")    = "abc"
8128
     * StringUtils.strip("  abc")  = "abc"
8129
     * StringUtils.strip("abc  ")  = "abc"
8130
     * StringUtils.strip(" abc ")  = "abc"
8131
     * StringUtils.strip(" ab c ") = "ab c"
8132
     * </pre>
8133
     *
8134
     * @param str  the String to remove whitespace from, may be null
8135
     * @return the stripped String, {@code null} if null String input
8136
     */
8137
    public static String strip(final String str) {
8138 1 1. strip : replaced return value with "" for org/apache/commons/lang3/StringUtils::strip → KILLED
        return strip(str, null);
8139
    }
8140
8141
    /**
8142
     * Strips any of a set of characters from the start and end of a String.
8143
     * This is similar to {@link String#trim()} but allows the characters
8144
     * to be stripped to be controlled.
8145
     *
8146
     * <p>A {@code null} input String returns {@code null}.
8147
     * An empty string ("") input returns the empty string.</p>
8148
     *
8149
     * <p>If the stripChars String is {@code null}, whitespace is
8150
     * stripped as defined by {@link Character#isWhitespace(char)}.
8151
     * Alternatively use {@link #strip(String)}.</p>
8152
     *
8153
     * <pre>
8154
     * StringUtils.strip(null, *)          = null
8155
     * StringUtils.strip("", *)            = ""
8156
     * StringUtils.strip("abc", null)      = "abc"
8157
     * StringUtils.strip("  abc", null)    = "abc"
8158
     * StringUtils.strip("abc  ", null)    = "abc"
8159
     * StringUtils.strip(" abc ", null)    = "abc"
8160
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
8161
     * </pre>
8162
     *
8163
     * @param str  the String to remove characters from, may be null
8164
     * @param stripChars  the characters to remove, null treated as whitespace
8165
     * @return the stripped String, {@code null} if null String input
8166
     */
8167
    public static String strip(String str, final String stripChars) {
8168
        str = stripStart(str, stripChars);
8169 1 1. strip : replaced return value with "" for org/apache/commons/lang3/StringUtils::strip → KILLED
        return stripEnd(str, stripChars);
8170
    }
8171
8172
    /**
8173
     * Removes diacritics (~= accents) from a string. The case will not be altered.
8174
     * <p>For instance, '&agrave;' will be replaced by 'a'.</p>
8175
     * <p>Decomposes ligatures and digraphs per the KD column in the
8176
     * <a href = "https://www.unicode.org/charts/normalization/">Unicode Normalization Chart.</a></p>
8177
     *
8178
     * <pre>
8179
     * StringUtils.stripAccents(null)                = null
8180
     * StringUtils.stripAccents("")                  = ""
8181
     * StringUtils.stripAccents("control")           = "control"
8182
     * StringUtils.stripAccents("&eacute;clair")     = "eclair"
8183
     * </pre>
8184
     *
8185
     * @param input String to be stripped
8186
     * @return input text with diacritics removed
8187
     *
8188
     * @since 3.0
8189
     */
8190
    // See also Lucene's ASCIIFoldingFilter (Lucene 2.9) that replaces accented characters by their unaccented equivalent (and uncommitted bug fix: https://issues.apache.org/jira/browse/LUCENE-1343?focusedCommentId=12858907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12858907).
8191
    public static String stripAccents(final String input) {
8192 1 1. stripAccents : negated conditional → KILLED
        if (isEmpty(input)) {
8193 1 1. stripAccents : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripAccents → KILLED
            return input;
8194
        }
8195
        final StringBuilder decomposed = new StringBuilder(Normalizer.normalize(input, Normalizer.Form.NFKD));
8196 1 1. stripAccents : removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED
        convertRemainingAccentCharacters(decomposed);
8197 1 1. stripAccents : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripAccents → KILLED
        return STRIP_ACCENTS_PATTERN.matcher(decomposed).replaceAll(EMPTY);
8198
    }
8199
8200
    /**
8201
     * Strips whitespace from the start and end of every String in an array.
8202
     * Whitespace is defined by {@link Character#isWhitespace(char)}.
8203
     *
8204
     * <p>A new array is returned each time, except for length zero.
8205
     * A {@code null} array will return {@code null}.
8206
     * An empty array will return itself.
8207
     * A {@code null} array entry will be ignored.</p>
8208
     *
8209
     * <pre>
8210
     * StringUtils.stripAll(null)             = null
8211
     * StringUtils.stripAll([])               = []
8212
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
8213
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
8214
     * </pre>
8215
     *
8216
     * @param strs  the array to remove whitespace from, may be null
8217
     * @return the stripped Strings, {@code null} if null array input
8218
     */
8219
    public static String[] stripAll(final String... strs) {
8220 1 1. stripAll : replaced return value with null for org/apache/commons/lang3/StringUtils::stripAll → KILLED
        return stripAll(strs, null);
8221
    }
8222
8223
    /**
8224
     * Strips any of a set of characters from the start and end of every
8225
     * String in an array.
8226
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
8227
     *
8228
     * <p>A new array is returned each time, except for length zero.
8229
     * A {@code null} array will return {@code null}.
8230
     * An empty array will return itself.
8231
     * A {@code null} array entry will be ignored.
8232
     * A {@code null} stripChars will strip whitespace as defined by
8233
     * {@link Character#isWhitespace(char)}.</p>
8234
     *
8235
     * <pre>
8236
     * StringUtils.stripAll(null, *)                = null
8237
     * StringUtils.stripAll([], *)                  = []
8238
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
8239
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
8240
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
8241
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
8242
     * </pre>
8243
     *
8244
     * @param strs  the array to remove characters from, may be null
8245
     * @param stripChars  the characters to remove, null treated as whitespace
8246
     * @return the stripped Strings, {@code null} if null array input
8247
     */
8248
    public static String[] stripAll(final String[] strs, final String stripChars) {
8249
        final int strsLen = ArrayUtils.getLength(strs);
8250 1 1. stripAll : negated conditional → KILLED
        if (strsLen == 0) {
8251 1 1. stripAll : replaced return value with null for org/apache/commons/lang3/StringUtils::stripAll → KILLED
            return strs;
8252
        }
8253
        final String[] newArr = new String[strsLen];
8254 2 1. stripAll : removed call to java/util/Arrays::setAll → KILLED
2. lambda$stripAll$0 : replaced return value with "" for org/apache/commons/lang3/StringUtils::lambda$stripAll$0 → KILLED
        Arrays.setAll(newArr, i -> strip(strs[i], stripChars));
8255 1 1. stripAll : replaced return value with null for org/apache/commons/lang3/StringUtils::stripAll → KILLED
        return newArr;
8256
    }
8257
8258
    /**
8259
     * Strips any of a set of characters from the end of a String.
8260
     *
8261
     * <p>A {@code null} input String returns {@code null}.
8262
     * An empty string ("") input returns the empty string.</p>
8263
     *
8264
     * <p>If the stripChars String is {@code null}, whitespace is
8265
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
8266
     *
8267
     * <pre>
8268
     * StringUtils.stripEnd(null, *)          = null
8269
     * StringUtils.stripEnd("", *)            = ""
8270
     * StringUtils.stripEnd("abc", "")        = "abc"
8271
     * StringUtils.stripEnd("abc", null)      = "abc"
8272
     * StringUtils.stripEnd("  abc", null)    = "  abc"
8273
     * StringUtils.stripEnd("abc  ", null)    = "abc"
8274
     * StringUtils.stripEnd(" abc ", null)    = " abc"
8275
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
8276
     * StringUtils.stripEnd("120.00", ".0")   = "12"
8277
     * </pre>
8278
     *
8279
     * @param str  the String to remove characters from, may be null
8280
     * @param stripChars  the set of characters to remove, null treated as whitespace
8281
     * @return the stripped String, {@code null} if null String input
8282
     */
8283
    public static String stripEnd(final String str, final String stripChars) {
8284
        int end = length(str);
8285 1 1. stripEnd : negated conditional → KILLED
        if (end == 0) {
8286 1 1. stripEnd : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripEnd → KILLED
            return str;
8287
        }
8288
8289 1 1. stripEnd : negated conditional → KILLED
        if (stripChars == null) {
8290 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
8291 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
8292
            }
8293 1 1. stripEnd : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
8294 1 1. stripEnd : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripEnd → KILLED
            return str;
8295
        } else {
8296 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
8297
                end--;
8298
            }
8299
        }
8300 1 1. stripEnd : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripEnd → KILLED
        return str.substring(0, end);
8301
    }
8302
8303
    /**
8304
     * Strips any of a set of characters from the start of a String.
8305
     *
8306
     * <p>A {@code null} input String returns {@code null}.
8307
     * An empty string ("") input returns the empty string.</p>
8308
     *
8309
     * <p>If the stripChars String is {@code null}, whitespace is
8310
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
8311
     *
8312
     * <pre>
8313
     * StringUtils.stripStart(null, *)          = null
8314
     * StringUtils.stripStart("", *)            = ""
8315
     * StringUtils.stripStart("abc", "")        = "abc"
8316
     * StringUtils.stripStart("abc", null)      = "abc"
8317
     * StringUtils.stripStart("  abc", null)    = "abc"
8318
     * StringUtils.stripStart("abc  ", null)    = "abc  "
8319
     * StringUtils.stripStart(" abc ", null)    = "abc "
8320
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
8321
     * </pre>
8322
     *
8323
     * @param str  the String to remove characters from, may be null
8324
     * @param stripChars  the characters to remove, null treated as whitespace
8325
     * @return the stripped String, {@code null} if null String input
8326
     */
8327
    public static String stripStart(final String str, final String stripChars) {
8328
        final int strLen = length(str);
8329 1 1. stripStart : negated conditional → KILLED
        if (strLen == 0) {
8330 1 1. stripStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripStart → KILLED
            return str;
8331
        }
8332
        int start = 0;
8333 1 1. stripStart : negated conditional → KILLED
        if (stripChars == null) {
8334 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && Character.isWhitespace(str.charAt(start))) {
8335 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
8336
            }
8337 1 1. stripStart : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
8338 1 1. stripStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripStart → KILLED
            return str;
8339
        } else {
8340 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
8341
                start++;
8342
            }
8343
        }
8344 1 1. stripStart : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripStart → KILLED
        return str.substring(start);
8345
    }
8346
8347
    /**
8348
     * Strips whitespace from the start and end of a String  returning
8349
     * an empty String if {@code null} input.
8350
     *
8351
     * <p>This is similar to {@link #trimToEmpty(String)} but removes whitespace.
8352
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
8353
     *
8354
     * <pre>
8355
     * StringUtils.stripToEmpty(null)     = ""
8356
     * StringUtils.stripToEmpty("")       = ""
8357
     * StringUtils.stripToEmpty("   ")    = ""
8358
     * StringUtils.stripToEmpty("abc")    = "abc"
8359
     * StringUtils.stripToEmpty("  abc")  = "abc"
8360
     * StringUtils.stripToEmpty("abc  ")  = "abc"
8361
     * StringUtils.stripToEmpty(" abc ")  = "abc"
8362
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
8363
     * </pre>
8364
     *
8365
     * @param str  the String to be stripped, may be null
8366
     * @return the trimmed String, or an empty String if {@code null} input
8367
     * @since 2.0
8368
     */
8369
    public static String stripToEmpty(final String str) {
8370 2 1. stripToEmpty : negated conditional → KILLED
2. stripToEmpty : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripToEmpty → KILLED
        return str == null ? EMPTY : strip(str, null);
8371
    }
8372
8373
    /**
8374
     * Strips whitespace from the start and end of a String  returning
8375
     * {@code null} if the String is empty ("") after the strip.
8376
     *
8377
     * <p>This is similar to {@link #trimToNull(String)} but removes whitespace.
8378
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
8379
     *
8380
     * <pre>
8381
     * StringUtils.stripToNull(null)     = null
8382
     * StringUtils.stripToNull("")       = null
8383
     * StringUtils.stripToNull("   ")    = null
8384
     * StringUtils.stripToNull("abc")    = "abc"
8385
     * StringUtils.stripToNull("  abc")  = "abc"
8386
     * StringUtils.stripToNull("abc  ")  = "abc"
8387
     * StringUtils.stripToNull(" abc ")  = "abc"
8388
     * StringUtils.stripToNull(" ab c ") = "ab c"
8389
     * </pre>
8390
     *
8391
     * @param str  the String to be stripped, may be null
8392
     * @return the stripped String,
8393
     *  {@code null} if whitespace, empty or null String input
8394
     * @since 2.0
8395
     */
8396
    public static String stripToNull(String str) {
8397 1 1. stripToNull : negated conditional → KILLED
        if (str == null) {
8398 1 1. stripToNull : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripToNull → KILLED
            return null;
8399
        }
8400
        str = strip(str, null);
8401 2 1. stripToNull : replaced return value with "" for org/apache/commons/lang3/StringUtils::stripToNull → KILLED
2. stripToNull : negated conditional → KILLED
        return str.isEmpty() ? null : str; // NOSONARLINT str cannot be null here
8402
    }
8403
8404
    /**
8405
     * Gets a substring from the specified String avoiding exceptions.
8406
     *
8407
     * <p>A negative start position can be used to start {@code n}
8408
     * characters from the end of the String.</p>
8409
     *
8410
     * <p>A {@code null} String will return {@code null}.
8411
     * An empty ("") String will return "".</p>
8412
     *
8413
     * <pre>
8414
     * StringUtils.substring(null, *)   = null
8415
     * StringUtils.substring("", *)     = ""
8416
     * StringUtils.substring("abc", 0)  = "abc"
8417
     * StringUtils.substring("abc", 2)  = "c"
8418
     * StringUtils.substring("abc", 4)  = ""
8419
     * StringUtils.substring("abc", -2) = "bc"
8420
     * StringUtils.substring("abc", -4) = "abc"
8421
     * </pre>
8422
     *
8423
     * @param str  the String to get the substring from, may be null
8424
     * @param start  the position to start from, negative means
8425
     *  count back from the end of the String by this many characters
8426
     * @return substring from start position, {@code null} if null String input
8427
     */
8428
    public static String substring(final String str, int start) {
8429 1 1. substring : negated conditional → KILLED
        if (str == null) {
8430 1 1. substring : replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED
            return null;
8431
        }
8432
8433
        // handle negatives, which means last n characters
8434 2 1. substring : negated conditional → KILLED
2. substring : changed conditional boundary → KILLED
        if (start < 0) {
8435 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
8436
        }
8437
8438 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
8439
            start = 0;
8440
        }
8441 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > str.length()) {
8442
            return EMPTY;
8443
        }
8444
8445 1 1. substring : replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED
        return str.substring(start);
8446
    }
8447
8448
    /**
8449
     * Gets a substring from the specified String avoiding exceptions.
8450
     *
8451
     * <p>A negative start position can be used to start/end {@code n}
8452
     * characters from the end of the String.</p>
8453
     *
8454
     * <p>The returned substring starts with the character in the {@code start}
8455
     * position and ends before the {@code end} position. All position counting is
8456
     * zero-based -- i.e., to start at the beginning of the string use
8457
     * {@code start = 0}. Negative start and end positions can be used to
8458
     * specify offsets relative to the end of the String.</p>
8459
     *
8460
     * <p>If {@code start} is not strictly to the left of {@code end}, ""
8461
     * is returned.</p>
8462
     *
8463
     * <pre>
8464
     * StringUtils.substring(null, *, *)    = null
8465
     * StringUtils.substring("", * ,  *)    = "";
8466
     * StringUtils.substring("abc", 0, 2)   = "ab"
8467
     * StringUtils.substring("abc", 2, 0)   = ""
8468
     * StringUtils.substring("abc", 2, 4)   = "c"
8469
     * StringUtils.substring("abc", 4, 6)   = ""
8470
     * StringUtils.substring("abc", 2, 2)   = ""
8471
     * StringUtils.substring("abc", -2, -1) = "b"
8472
     * StringUtils.substring("abc", -4, 2)  = "ab"
8473
     * </pre>
8474
     *
8475
     * @param str  the String to get the substring from, may be null
8476
     * @param start  the position to start from, negative means
8477
     *  count back from the end of the String by this many characters
8478
     * @param end  the position to end at (exclusive), negative means
8479
     *  count back from the end of the String by this many characters
8480
     * @return substring from start position to end position,
8481
     *  {@code null} if null String input
8482
     */
8483
    public static String substring(final String str, int start, int end) {
8484 1 1. substring : negated conditional → KILLED
        if (str == null) {
8485 1 1. substring : replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED
            return null;
8486
        }
8487
8488
        // handle negatives
8489 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
8490 1 1. substring : Replaced integer addition with subtraction → KILLED
            end = str.length() + end; // remember end is negative
8491
        }
8492 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
8493 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
8494
        }
8495
8496
        // check length next
8497 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end > str.length()) {
8498
            end = str.length();
8499
        }
8500
8501
        // if start is greater than end, return ""
8502 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > end) {
8503
            return EMPTY;
8504
        }
8505
8506 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
8507
            start = 0;
8508
        }
8509 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
8510
            end = 0;
8511
        }
8512
8513 1 1. substring : replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED
        return str.substring(start, end);
8514
    }
8515
8516
    /**
8517
     * Gets the substring after the first occurrence of a separator.
8518
     * The separator is not returned.
8519
     *
8520
     * <p>A {@code null} string input will return {@code null}.
8521
     * An empty ("") string input will return the empty string.
8522
     *
8523
     * <p>If nothing is found, the empty string is returned.</p>
8524
     *
8525
     * <pre>
8526
     * StringUtils.substringAfter(null, *)      = null
8527
     * StringUtils.substringAfter("", *)        = ""
8528
     * StringUtils.substringAfter("abc", 'a')   = "bc"
8529
     * StringUtils.substringAfter("abcba", 'b') = "cba"
8530
     * StringUtils.substringAfter("abc", 'c')   = ""
8531
     * StringUtils.substringAfter("abc", 'd')   = ""
8532
     * StringUtils.substringAfter(" abc", 32)   = "abc"
8533
     * </pre>
8534
     *
8535
     * @param str  the String to get a substring from, may be null
8536
     * @param separator  the character (Unicode code point) to search.
8537
     * @return the substring after the first occurrence of the separator,
8538
     *  {@code null} if null String input
8539
     * @since 3.11
8540
     */
8541
    public static String substringAfter(final String str, final int separator) {
8542 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
8543 1 1. substringAfter : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED
            return str;
8544
        }
8545
        final int pos = str.indexOf(separator);
8546 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
8547
            return EMPTY;
8548
        }
8549 2 1. substringAfter : Replaced integer addition with subtraction → KILLED
2. substringAfter : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED
        return str.substring(pos + 1);
8550
    }
8551
8552
    /**
8553
     * Gets the substring after the first occurrence of a separator.
8554
     * The separator is not returned.
8555
     *
8556
     * <p>A {@code null} string input will return {@code null}.
8557
     * An empty ("") string input will return the empty string.
8558
     * A {@code null} separator will return the empty string if the
8559
     * input string is not {@code null}.</p>
8560
     *
8561
     * <p>If nothing is found, the empty string is returned.</p>
8562
     *
8563
     * <pre>
8564
     * StringUtils.substringAfter(null, *)      = null
8565
     * StringUtils.substringAfter("", *)        = ""
8566
     * StringUtils.substringAfter(*, null)      = ""
8567
     * StringUtils.substringAfter("abc", "a")   = "bc"
8568
     * StringUtils.substringAfter("abcba", "b") = "cba"
8569
     * StringUtils.substringAfter("abc", "c")   = ""
8570
     * StringUtils.substringAfter("abc", "d")   = ""
8571
     * StringUtils.substringAfter("abc", "")    = "abc"
8572
     * </pre>
8573
     *
8574
     * @param str  the String to get a substring from, may be null
8575
     * @param separator  the String to search for, may be null
8576
     * @return the substring after the first occurrence of the separator,
8577
     *  {@code null} if null String input
8578
     * @since 2.0
8579
     */
8580
    public static String substringAfter(final String str, final String separator) {
8581 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
8582 1 1. substringAfter : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED
            return str;
8583
        }
8584 1 1. substringAfter : negated conditional → KILLED
        if (separator == null) {
8585
            return EMPTY;
8586
        }
8587
        final int pos = str.indexOf(separator);
8588 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
8589
            return EMPTY;
8590
        }
8591 2 1. substringAfter : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED
2. substringAfter : Replaced integer addition with subtraction → KILLED
        return str.substring(pos + separator.length());
8592
    }
8593
8594
    /**
8595
     * Gets the substring after the last occurrence of a separator.
8596
     * The separator is not returned.
8597
     *
8598
     * <p>A {@code null} string input will return {@code null}.
8599
     * An empty ("") string input will return the empty string.
8600
     *
8601
     * <p>If nothing is found, the empty string is returned.</p>
8602
     *
8603
     * <pre>
8604
     * StringUtils.substringAfterLast(null, *)      = null
8605
     * StringUtils.substringAfterLast("", *)        = ""
8606
     * StringUtils.substringAfterLast("abc", 'a')   = "bc"
8607
     * StringUtils.substringAfterLast(" bc", 32)    = "bc"
8608
     * StringUtils.substringAfterLast("abcba", 'b') = "a"
8609
     * StringUtils.substringAfterLast("abc", 'c')   = ""
8610
     * StringUtils.substringAfterLast("a", 'a')     = ""
8611
     * StringUtils.substringAfterLast("a", 'z')     = ""
8612
     * </pre>
8613
     *
8614
     * @param str  the String to get a substring from, may be null
8615
     * @param separator  the character (Unicode code point) to search.
8616
     * @return the substring after the last occurrence of the separator,
8617
     *  {@code null} if null String input
8618
     * @since 3.11
8619
     */
8620
    public static String substringAfterLast(final String str, final int separator) {
8621 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
8622 1 1. substringAfterLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED
            return str;
8623
        }
8624
        final int pos = str.lastIndexOf(separator);
8625 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - 1) {
8626
            return EMPTY;
8627
        }
8628 2 1. substringAfterLast : Replaced integer addition with subtraction → KILLED
2. substringAfterLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED
        return str.substring(pos + 1);
8629
    }
8630
8631
    /**
8632
     * Gets the substring after the last occurrence of a separator.
8633
     * The separator is not returned.
8634
     *
8635
     * <p>A {@code null} string input will return {@code null}.
8636
     * An empty ("") string input will return the empty string.
8637
     * An empty or {@code null} separator will return the empty string if
8638
     * the input string is not {@code null}.</p>
8639
     *
8640
     * <p>If nothing is found, the empty string is returned.</p>
8641
     *
8642
     * <pre>
8643
     * StringUtils.substringAfterLast(null, *)      = null
8644
     * StringUtils.substringAfterLast("", *)        = ""
8645
     * StringUtils.substringAfterLast(*, "")        = ""
8646
     * StringUtils.substringAfterLast(*, null)      = ""
8647
     * StringUtils.substringAfterLast("abc", "a")   = "bc"
8648
     * StringUtils.substringAfterLast("abcba", "b") = "a"
8649
     * StringUtils.substringAfterLast("abc", "c")   = ""
8650
     * StringUtils.substringAfterLast("a", "a")     = ""
8651
     * StringUtils.substringAfterLast("a", "z")     = ""
8652
     * </pre>
8653
     *
8654
     * @param str  the String to get a substring from, may be null
8655
     * @param separator  the String to search for, may be null
8656
     * @return the substring after the last occurrence of the separator,
8657
     *  {@code null} if null String input
8658
     * @since 2.0
8659
     */
8660
    public static String substringAfterLast(final String str, final String separator) {
8661 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
8662 1 1. substringAfterLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED
            return str;
8663
        }
8664 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(separator)) {
8665
            return EMPTY;
8666
        }
8667
        final int pos = str.lastIndexOf(separator);
8668 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - separator.length()) {
8669
            return EMPTY;
8670
        }
8671 2 1. substringAfterLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED
2. substringAfterLast : Replaced integer addition with subtraction → KILLED
        return str.substring(pos + separator.length());
8672
    }
8673
8674
    /**
8675
     * Gets the substring before the first occurrence of a separator. The separator is not returned.
8676
     *
8677
     * <p>
8678
     * A {@code null} string input will return {@code null}. An empty ("") string input will return the empty string.
8679
     * </p>
8680
     *
8681
     * <p>
8682
     * If nothing is found, the string input is returned.
8683
     * </p>
8684
     *
8685
     * <pre>
8686
     * StringUtils.substringBefore(null, *)      = null
8687
     * StringUtils.substringBefore("", *)        = ""
8688
     * StringUtils.substringBefore("abc", 'a')   = ""
8689
     * StringUtils.substringBefore("abcba", 'b') = "a"
8690
     * StringUtils.substringBefore("abc", 'c')   = "ab"
8691
     * StringUtils.substringBefore("abc", 'd')   = "abc"
8692
     * </pre>
8693
     *
8694
     * @param str the String to get a substring from, may be null
8695
     * @param separator the character (Unicode code point) to search.
8696
     * @return the substring before the first occurrence of the separator, {@code null} if null String input
8697
     * @since 3.12.0
8698
     */
8699
    public static String substringBefore(final String str, final int separator) {
8700 1 1. substringBefore : negated conditional → KILLED
        if (isEmpty(str)) {
8701 1 1. substringBefore : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED
            return str;
8702
        }
8703
        final int pos = str.indexOf(separator);
8704 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
8705 1 1. substringBefore : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED
            return str;
8706
        }
8707 1 1. substringBefore : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED
        return str.substring(0, pos);
8708
    }
8709
8710
    /**
8711
     * Gets the substring before the first occurrence of a separator.
8712
     * The separator is not returned.
8713
     *
8714
     * <p>A {@code null} string input will return {@code null}.
8715
     * An empty ("") string input will return the empty string.
8716
     * A {@code null} separator will return the input string.</p>
8717
     *
8718
     * <p>If nothing is found, the string input is returned.</p>
8719
     *
8720
     * <pre>
8721
     * StringUtils.substringBefore(null, *)      = null
8722
     * StringUtils.substringBefore("", *)        = ""
8723
     * StringUtils.substringBefore("abc", "a")   = ""
8724
     * StringUtils.substringBefore("abcba", "b") = "a"
8725
     * StringUtils.substringBefore("abc", "c")   = "ab"
8726
     * StringUtils.substringBefore("abc", "d")   = "abc"
8727
     * StringUtils.substringBefore("abc", "")    = ""
8728
     * StringUtils.substringBefore("abc", null)  = "abc"
8729
     * </pre>
8730
     *
8731
     * @param str  the String to get a substring from, may be null
8732
     * @param separator  the String to search for, may be null
8733
     * @return the substring before the first occurrence of the separator,
8734
     *  {@code null} if null String input
8735
     * @since 2.0
8736
     */
8737
    public static String substringBefore(final String str, final String separator) {
8738 2 1. substringBefore : negated conditional → KILLED
2. substringBefore : negated conditional → KILLED
        if (isEmpty(str) || separator == null) {
8739 1 1. substringBefore : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED
            return str;
8740
        }
8741 1 1. substringBefore : negated conditional → KILLED
        if (separator.isEmpty()) {
8742
            return EMPTY;
8743
        }
8744
        final int pos = str.indexOf(separator);
8745 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
8746 1 1. substringBefore : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED
            return str;
8747
        }
8748 1 1. substringBefore : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED
        return str.substring(0, pos);
8749
    }
8750
8751
    /**
8752
     * Gets the substring before the last occurrence of a separator.
8753
     * The separator is not returned.
8754
     *
8755
     * <p>A {@code null} string input will return {@code null}.
8756
     * An empty ("") string input will return the empty string.
8757
     * An empty or {@code null} separator will return the input string.</p>
8758
     *
8759
     * <p>If nothing is found, the string input is returned.</p>
8760
     *
8761
     * <pre>
8762
     * StringUtils.substringBeforeLast(null, *)      = null
8763
     * StringUtils.substringBeforeLast("", *)        = ""
8764
     * StringUtils.substringBeforeLast("abcba", "b") = "abc"
8765
     * StringUtils.substringBeforeLast("abc", "c")   = "ab"
8766
     * StringUtils.substringBeforeLast("a", "a")     = ""
8767
     * StringUtils.substringBeforeLast("a", "z")     = "a"
8768
     * StringUtils.substringBeforeLast("a", null)    = "a"
8769
     * StringUtils.substringBeforeLast("a", "")      = "a"
8770
     * </pre>
8771
     *
8772
     * @param str  the String to get a substring from, may be null
8773
     * @param separator  the String to search for, may be null
8774
     * @return the substring before the last occurrence of the separator,
8775
     *  {@code null} if null String input
8776
     * @since 2.0
8777
     */
8778
    public static String substringBeforeLast(final String str, final String separator) {
8779 2 1. substringBeforeLast : negated conditional → KILLED
2. substringBeforeLast : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(separator)) {
8780 1 1. substringBeforeLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBeforeLast → KILLED
            return str;
8781
        }
8782
        final int pos = str.lastIndexOf(separator);
8783 1 1. substringBeforeLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
8784 1 1. substringBeforeLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBeforeLast → KILLED
            return str;
8785
        }
8786 1 1. substringBeforeLast : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBeforeLast → KILLED
        return str.substring(0, pos);
8787
    }
8788
8789
    /**
8790
     * Gets the String that is nested in between two instances of the
8791
     * same String.
8792
     *
8793
     * <p>A {@code null} input String returns {@code null}.
8794
     * A {@code null} tag returns {@code null}.</p>
8795
     *
8796
     * <pre>
8797
     * StringUtils.substringBetween(null, *)            = null
8798
     * StringUtils.substringBetween("", "")             = ""
8799
     * StringUtils.substringBetween("", "tag")          = null
8800
     * StringUtils.substringBetween("tagabctag", null)  = null
8801
     * StringUtils.substringBetween("tagabctag", "")    = ""
8802
     * StringUtils.substringBetween("tagabctag", "tag") = "abc"
8803
     * </pre>
8804
     *
8805
     * @param str  the String containing the substring, may be null
8806
     * @param tag  the String before and after the substring, may be null
8807
     * @return the substring, {@code null} if no match
8808
     * @since 2.0
8809
     */
8810
    public static String substringBetween(final String str, final String tag) {
8811 1 1. substringBetween : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED
        return substringBetween(str, tag, tag);
8812
    }
8813
8814
    /**
8815
     * Gets the String that is nested in between two Strings.
8816
     * Only the first match is returned.
8817
     *
8818
     * <p>A {@code null} input String returns {@code null}.
8819
     * A {@code null} open/close returns {@code null} (no match).
8820
     * An empty ("") open and close returns an empty string.</p>
8821
     *
8822
     * <pre>
8823
     * StringUtils.substringBetween("wx[b]yz", "[", "]") = "b"
8824
     * StringUtils.substringBetween(null, *, *)          = null
8825
     * StringUtils.substringBetween(*, null, *)          = null
8826
     * StringUtils.substringBetween(*, *, null)          = null
8827
     * StringUtils.substringBetween("", "", "")          = ""
8828
     * StringUtils.substringBetween("", "", "]")         = null
8829
     * StringUtils.substringBetween("", "[", "]")        = null
8830
     * StringUtils.substringBetween("yabcz", "", "")     = ""
8831
     * StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
8832
     * StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
8833
     * </pre>
8834
     *
8835
     * @param str  the String containing the substring, may be null
8836
     * @param open  the String before the substring, may be null
8837
     * @param close  the String after the substring, may be null
8838
     * @return the substring, {@code null} if no match
8839
     * @since 2.0
8840
     */
8841
    public static String substringBetween(final String str, final String open, final String close) {
8842 1 1. substringBetween : negated conditional → KILLED
        if (!ObjectUtils.allNotNull(str, open, close)) {
8843 1 1. substringBetween : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED
            return null;
8844
        }
8845
        final int start = str.indexOf(open);
8846 1 1. substringBetween : negated conditional → KILLED
        if (start != INDEX_NOT_FOUND) {
8847 1 1. substringBetween : Replaced integer addition with subtraction → KILLED
            final int end = str.indexOf(close, start + open.length());
8848 1 1. substringBetween : negated conditional → KILLED
            if (end != INDEX_NOT_FOUND) {
8849 2 1. substringBetween : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED
2. substringBetween : Replaced integer addition with subtraction → KILLED
                return str.substring(start + open.length(), end);
8850
            }
8851
        }
8852 1 1. substringBetween : replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED
        return null;
8853
    }
8854
8855
    /**
8856
     * Searches a String for substrings delimited by a start and end tag,
8857
     * returning all matching substrings in an array.
8858
     *
8859
     * <p>A {@code null} input String returns {@code null}.
8860
     * A {@code null} open/close returns {@code null} (no match).
8861
     * An empty ("") open/close returns {@code null} (no match).</p>
8862
     *
8863
     * <pre>
8864
     * StringUtils.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]
8865
     * StringUtils.substringsBetween(null, *, *)            = null
8866
     * StringUtils.substringsBetween(*, null, *)            = null
8867
     * StringUtils.substringsBetween(*, *, null)            = null
8868
     * StringUtils.substringsBetween("", "[", "]")          = []
8869
     * </pre>
8870
     *
8871
     * @param str  the String containing the substrings, null returns null, empty returns empty
8872
     * @param open  the String identifying the start of the substring, empty returns null
8873
     * @param close  the String identifying the end of the substring, empty returns null
8874
     * @return a String Array of substrings, or {@code null} if no match
8875
     * @since 2.3
8876
     */
8877
    public static String[] substringsBetween(final String str, final String open, final String close) {
8878 3 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : negated conditional → KILLED
3. substringsBetween : negated conditional → KILLED
        if (str == null || isEmpty(open) || isEmpty(close)) {
8879
            return null;
8880
        }
8881
        final int strLen = str.length();
8882 1 1. substringsBetween : negated conditional → KILLED
        if (strLen == 0) {
8883 1 1. substringsBetween : replaced return value with null for org/apache/commons/lang3/StringUtils::substringsBetween → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
8884
        }
8885
        final int closeLen = close.length();
8886
        final int openLen = open.length();
8887
        final List<String> list = new ArrayList<>();
8888
        int pos = 0;
8889 3 1. substringsBetween : Replaced integer subtraction with addition → SURVIVED
2. substringsBetween : changed conditional boundary → SURVIVED
3. substringsBetween : negated conditional → KILLED
        while (pos < strLen - closeLen) {
8890
            int start = str.indexOf(open, pos);
8891 2 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : changed conditional boundary → KILLED
            if (start < 0) {
8892
                break;
8893
            }
8894 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            start += openLen;
8895
            final int end = str.indexOf(close, start);
8896 2 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : negated conditional → KILLED
            if (end < 0) {
8897
                break;
8898
            }
8899
            list.add(str.substring(start, end));
8900 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            pos = end + closeLen;
8901
        }
8902 1 1. substringsBetween : negated conditional → KILLED
        if (list.isEmpty()) {
8903
            return null;
8904
        }
8905 1 1. substringsBetween : replaced return value with null for org/apache/commons/lang3/StringUtils::substringsBetween → KILLED
        return list.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
8906
    }
8907
8908
    /**
8909
     * Swaps the case of a String changing upper and title case to
8910
     * lower case, and lower case to upper case.
8911
     *
8912
     * <ul>
8913
     *  <li>Upper case character converts to Lower case</li>
8914
     *  <li>Title case character converts to Lower case</li>
8915
     *  <li>Lower case character converts to Upper case</li>
8916
     * </ul>
8917
     *
8918
     * <p>For a word based algorithm, see {@link org.apache.commons.text.WordUtils#swapCase(String)}.
8919
     * A {@code null} input String returns {@code null}.</p>
8920
     *
8921
     * <pre>
8922
     * StringUtils.swapCase(null)                 = null
8923
     * StringUtils.swapCase("")                   = ""
8924
     * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
8925
     * </pre>
8926
     *
8927
     * <p>NOTE: This method changed in Lang version 2.0.
8928
     * It no longer performs a word based algorithm.
8929
     * If you only use ASCII, you will notice no change.
8930
     * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
8931
     *
8932
     * @param str  the String to swap case, may be null
8933
     * @return the changed String, {@code null} if null String input
8934
     */
8935
    public static String swapCase(final String str) {
8936 1 1. swapCase : negated conditional → KILLED
        if (isEmpty(str)) {
8937 1 1. swapCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::swapCase → KILLED
            return str;
8938
        }
8939
8940
        final int strLen = str.length();
8941
        final int[] newCodePoints = new int[strLen]; // cannot be longer than the char array
8942
        int outOffset = 0;
8943 2 1. swapCase : negated conditional → KILLED
2. swapCase : changed conditional boundary → KILLED
        for (int i = 0; i < strLen; ) {
8944
            final int oldCodepoint = str.codePointAt(i);
8945
            final int newCodePoint;
8946 2 1. swapCase : negated conditional → KILLED
2. swapCase : negated conditional → KILLED
            if (Character.isUpperCase(oldCodepoint) || Character.isTitleCase(oldCodepoint)) {
8947
                newCodePoint = Character.toLowerCase(oldCodepoint);
8948 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isLowerCase(oldCodepoint)) {
8949
                newCodePoint = Character.toUpperCase(oldCodepoint);
8950
            } else {
8951
                newCodePoint = oldCodepoint;
8952
            }
8953 1 1. swapCase : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = newCodePoint;
8954 1 1. swapCase : Replaced integer addition with subtraction → KILLED
            i += Character.charCount(newCodePoint);
8955
         }
8956 1 1. swapCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::swapCase → KILLED
        return new String(newCodePoints, 0, outOffset);
8957
    }
8958
8959
    /**
8960
     * Converts a {@link CharSequence} into an array of code points.
8961
     *
8962
     * <p>Valid pairs of surrogate code units will be converted into a single supplementary
8963
     * code point. Isolated surrogate code units (i.e. a high surrogate not followed by a low surrogate or
8964
     * a low surrogate not preceded by a high surrogate) will be returned as-is.</p>
8965
     *
8966
     * <pre>
8967
     * StringUtils.toCodePoints(null)   =  null
8968
     * StringUtils.toCodePoints("")     =  []  // empty array
8969
     * </pre>
8970
     *
8971
     * @param cs the character sequence to convert
8972
     * @return an array of code points
8973
     * @since 3.6
8974
     */
8975
    public static int[] toCodePoints(final CharSequence cs) {
8976 1 1. toCodePoints : negated conditional → KILLED
        if (cs == null) {
8977
            return null;
8978
        }
8979 1 1. toCodePoints : negated conditional → KILLED
        if (cs.length() == 0) {
8980 1 1. toCodePoints : replaced return value with null for org/apache/commons/lang3/StringUtils::toCodePoints → KILLED
            return ArrayUtils.EMPTY_INT_ARRAY;
8981
        }
8982
8983
        final String s = cs.toString();
8984
        final int[] result = new int[s.codePointCount(0, s.length())];
8985
        int index = 0;
8986 2 1. toCodePoints : changed conditional boundary → KILLED
2. toCodePoints : negated conditional → KILLED
        for (int i = 0; i < result.length; i++) {
8987
            result[i] = s.codePointAt(index);
8988 1 1. toCodePoints : Replaced integer addition with subtraction → KILLED
            index += Character.charCount(result[i]);
8989
        }
8990 1 1. toCodePoints : replaced return value with null for org/apache/commons/lang3/StringUtils::toCodePoints → KILLED
        return result;
8991
    }
8992
8993
    /**
8994
     * Converts a {@code byte[]} to a String using the specified character encoding.
8995
     *
8996
     * @param bytes
8997
     *            the byte array to read from
8998
     * @param charset
8999
     *            the encoding to use, if null then use the platform default
9000
     * @return a new String
9001
     * @throws NullPointerException
9002
     *             if {@code bytes} is null
9003
     * @since 3.2
9004
     * @since 3.3 No longer throws {@link UnsupportedEncodingException}.
9005
     */
9006
    public static String toEncodedString(final byte[] bytes, final Charset charset) {
9007 1 1. toEncodedString : replaced return value with "" for org/apache/commons/lang3/StringUtils::toEncodedString → KILLED
        return new String(bytes, Charsets.toCharset(charset));
9008
    }
9009
9010
    /**
9011
     * Converts the given source String as a lower-case using the {@link Locale#ROOT} locale in a null-safe manner.
9012
     *
9013
     * @param source A source String or null.
9014
     * @return the given source String as a lower-case using the {@link Locale#ROOT} locale or null.
9015
     * @since 3.10
9016
     */
9017
    public static String toRootLowerCase(final String source) {
9018 2 1. toRootLowerCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::toRootLowerCase → KILLED
2. toRootLowerCase : negated conditional → KILLED
        return source == null ? null : source.toLowerCase(Locale.ROOT);
9019
    }
9020
9021
    /**
9022
     * Converts the given source String as a upper-case using the {@link Locale#ROOT} locale in a null-safe manner.
9023
     *
9024
     * @param source A source String or null.
9025
     * @return the given source String as a upper-case using the {@link Locale#ROOT} locale or null.
9026
     * @since 3.10
9027
     */
9028
    public static String toRootUpperCase(final String source) {
9029 2 1. toRootUpperCase : negated conditional → KILLED
2. toRootUpperCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::toRootUpperCase → KILLED
        return source == null ? null : source.toUpperCase(Locale.ROOT);
9030
    }
9031
9032
    /**
9033
     * Converts a {@code byte[]} to a String using the specified character encoding.
9034
     *
9035
     * @param bytes
9036
     *            the byte array to read from
9037
     * @param charsetName
9038
     *            the encoding to use, if null then use the platform default
9039
     * @return a new String
9040
     * @throws UnsupportedEncodingException
9041
     *             Never thrown
9042
     * @throws NullPointerException
9043
     *             if the input is null
9044
     * @deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of String constants in your code
9045
     * @since 3.1
9046
     */
9047
    @Deprecated
9048
    public static String toString(final byte[] bytes, final String charsetName) throws UnsupportedEncodingException {
9049 1 1. toString : replaced return value with "" for org/apache/commons/lang3/StringUtils::toString → KILLED
        return new String(bytes, Charsets.toCharset(charsetName));
9050
    }
9051
9052
    private static String toStringOrEmpty(final Object obj) {
9053 1 1. toStringOrEmpty : replaced return value with "" for org/apache/commons/lang3/StringUtils::toStringOrEmpty → KILLED
        return Objects.toString(obj, EMPTY);
9054
    }
9055
9056
    /**
9057
     * Removes control characters (char &lt;= 32) from both
9058
     * ends of this String, handling {@code null} by returning
9059
     * {@code null}.
9060
     *
9061
     * <p>The String is trimmed using {@link String#trim()}.
9062
     * Trim removes start and end characters &lt;= 32.
9063
     * To strip whitespace use {@link #strip(String)}.</p>
9064
     *
9065
     * <p>To trim your choice of characters, use the
9066
     * {@link #strip(String, String)} methods.</p>
9067
     *
9068
     * <pre>
9069
     * StringUtils.trim(null)          = null
9070
     * StringUtils.trim("")            = ""
9071
     * StringUtils.trim("     ")       = ""
9072
     * StringUtils.trim("abc")         = "abc"
9073
     * StringUtils.trim("    abc    ") = "abc"
9074
     * </pre>
9075
     *
9076
     * @param str  the String to be trimmed, may be null
9077
     * @return the trimmed string, {@code null} if null String input
9078
     */
9079
    public static String trim(final String str) {
9080 2 1. trim : replaced return value with "" for org/apache/commons/lang3/StringUtils::trim → KILLED
2. trim : negated conditional → KILLED
        return str == null ? null : str.trim();
9081
    }
9082
9083
    /**
9084
     * Removes control characters (char &lt;= 32) from both
9085
     * ends of this String returning an empty String ("") if the String
9086
     * is empty ("") after the trim or if it is {@code null}.
9087
     *
9088
     * <p>The String is trimmed using {@link String#trim()}.
9089
     * Trim removes start and end characters &lt;= 32.
9090
     * To strip whitespace use {@link #stripToEmpty(String)}.
9091
     *
9092
     * <pre>
9093
     * StringUtils.trimToEmpty(null)          = ""
9094
     * StringUtils.trimToEmpty("")            = ""
9095
     * StringUtils.trimToEmpty("     ")       = ""
9096
     * StringUtils.trimToEmpty("abc")         = "abc"
9097
     * StringUtils.trimToEmpty("    abc    ") = "abc"
9098
     * </pre>
9099
     *
9100
     * @param str  the String to be trimmed, may be null
9101
     * @return the trimmed String, or an empty String if {@code null} input
9102
     * @since 2.0
9103
     */
9104
    public static String trimToEmpty(final String str) {
9105 2 1. trimToEmpty : replaced return value with "" for org/apache/commons/lang3/StringUtils::trimToEmpty → KILLED
2. trimToEmpty : negated conditional → KILLED
        return str == null ? EMPTY : str.trim();
9106
    }
9107
9108
    /**
9109
     * Removes control characters (char &lt;= 32) from both
9110
     * ends of this String returning {@code null} if the String is
9111
     * empty ("") after the trim or if it is {@code null}.
9112
     *
9113
     * <p>The String is trimmed using {@link String#trim()}.
9114
     * Trim removes start and end characters &lt;= 32.
9115
     * To strip whitespace use {@link #stripToNull(String)}.
9116
     *
9117
     * <pre>
9118
     * StringUtils.trimToNull(null)          = null
9119
     * StringUtils.trimToNull("")            = null
9120
     * StringUtils.trimToNull("     ")       = null
9121
     * StringUtils.trimToNull("abc")         = "abc"
9122
     * StringUtils.trimToNull("    abc    ") = "abc"
9123
     * </pre>
9124
     *
9125
     * @param str  the String to be trimmed, may be null
9126
     * @return the trimmed String,
9127
     *  {@code null} if only chars &lt;= 32, empty or null String input
9128
     * @since 2.0
9129
     */
9130
    public static String trimToNull(final String str) {
9131
        final String ts = trim(str);
9132 2 1. trimToNull : negated conditional → KILLED
2. trimToNull : replaced return value with "" for org/apache/commons/lang3/StringUtils::trimToNull → KILLED
        return isEmpty(ts) ? null : ts;
9133
    }
9134
9135
    /**
9136
     * Truncates a String. This will turn
9137
     * "Now is the time for all good men" into "Now is the time for".
9138
     *
9139
     * <p>Specifically:</p>
9140
     * <ul>
9141
     *   <li>If {@code str} is less than {@code maxWidth} characters
9142
     *       long, return it.</li>
9143
     *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
9144
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
9145
     *       {@link IllegalArgumentException}.</li>
9146
     *   <li>In no case will it return a String of length greater than
9147
     *       {@code maxWidth}.</li>
9148
     * </ul>
9149
     *
9150
     * <pre>
9151
     * StringUtils.truncate(null, 0)       = null
9152
     * StringUtils.truncate(null, 2)       = null
9153
     * StringUtils.truncate("", 4)         = ""
9154
     * StringUtils.truncate("abcdefg", 4)  = "abcd"
9155
     * StringUtils.truncate("abcdefg", 6)  = "abcdef"
9156
     * StringUtils.truncate("abcdefg", 7)  = "abcdefg"
9157
     * StringUtils.truncate("abcdefg", 8)  = "abcdefg"
9158
     * StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
9159
     * </pre>
9160
     *
9161
     * @param str  the String to truncate, may be null
9162
     * @param maxWidth  maximum length of result String, must be positive
9163
     * @return truncated String, {@code null} if null String input
9164
     * @throws IllegalArgumentException If {@code maxWidth} is less than {@code 0}
9165
     * @since 3.5
9166
     */
9167
    public static String truncate(final String str, final int maxWidth) {
9168 1 1. truncate : replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED
        return truncate(str, 0, maxWidth);
9169
    }
9170
9171
    /**
9172
     * Truncates a String. This will turn
9173
     * "Now is the time for all good men" into "is the time for all".
9174
     *
9175
     * <p>Works like {@code truncate(String, int)}, but allows you to specify
9176
     * a "left edge" offset.
9177
     *
9178
     * <p>Specifically:</p>
9179
     * <ul>
9180
     *   <li>If {@code str} is less than {@code maxWidth} characters
9181
     *       long, return it.</li>
9182
     *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
9183
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
9184
     *       {@link IllegalArgumentException}.</li>
9185
     *   <li>If {@code offset} is less than {@code 0}, throw an
9186
     *       {@link IllegalArgumentException}.</li>
9187
     *   <li>In no case will it return a String of length greater than
9188
     *       {@code maxWidth}.</li>
9189
     * </ul>
9190
     *
9191
     * <pre>
9192
     * StringUtils.truncate(null, 0, 0) = null
9193
     * StringUtils.truncate(null, 2, 4) = null
9194
     * StringUtils.truncate("", 0, 10) = ""
9195
     * StringUtils.truncate("", 2, 10) = ""
9196
     * StringUtils.truncate("abcdefghij", 0, 3) = "abc"
9197
     * StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
9198
     * StringUtils.truncate("raspberry peach", 10, 15) = "peach"
9199
     * StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
9200
     * StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
9201
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = throws an IllegalArgumentException
9202
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = throws an IllegalArgumentException
9203
     * StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
9204
     * StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
9205
     * StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
9206
     * StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
9207
     * StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
9208
     * StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
9209
     * StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
9210
     * StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
9211
     * StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
9212
     * StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
9213
     * StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
9214
     * StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
9215
     * StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
9216
     * StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
9217
     * StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
9218
     * StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
9219
     * StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
9220
     * StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
9221
     * StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
9222
     * </pre>
9223
     *
9224
     * @param str  the String to truncate, may be null
9225
     * @param offset  left edge of source String
9226
     * @param maxWidth  maximum length of result String, must be positive
9227
     * @return truncated String, {@code null} if null String input
9228
     * @throws IllegalArgumentException If {@code offset} or {@code maxWidth} is less than {@code 0}
9229
     * @since 3.5
9230
     */
9231
    public static String truncate(final String str, final int offset, final int maxWidth) {
9232 2 1. truncate : negated conditional → KILLED
2. truncate : changed conditional boundary → KILLED
        if (offset < 0) {
9233
            throw new IllegalArgumentException("offset cannot be negative");
9234
        }
9235 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (maxWidth < 0) {
9236
            throw new IllegalArgumentException("maxWith cannot be negative");
9237
        }
9238 1 1. truncate : negated conditional → KILLED
        if (str == null) {
9239 1 1. truncate : replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED
            return null;
9240
        }
9241 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (offset > str.length()) {
9242
            return EMPTY;
9243
        }
9244 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (str.length() > maxWidth) {
9245 1 1. truncate : Replaced integer addition with subtraction → KILLED
            final int ix = Math.min(offset + maxWidth, str.length());
9246 1 1. truncate : replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED
            return str.substring(offset, ix);
9247
        }
9248 1 1. truncate : replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED
        return str.substring(offset);
9249
    }
9250
9251
    /**
9252
     * Uncapitalizes a String, changing the first character to lower case as
9253
     * per {@link Character#toLowerCase(int)}. No other characters are changed.
9254
     *
9255
     * <p>For a word based algorithm, see {@link org.apache.commons.text.WordUtils#uncapitalize(String)}.
9256
     * A {@code null} input String returns {@code null}.</p>
9257
     *
9258
     * <pre>
9259
     * StringUtils.uncapitalize(null)  = null
9260
     * StringUtils.uncapitalize("")    = ""
9261
     * StringUtils.uncapitalize("cat") = "cat"
9262
     * StringUtils.uncapitalize("Cat") = "cat"
9263
     * StringUtils.uncapitalize("CAT") = "cAT"
9264
     * </pre>
9265
     *
9266
     * @param str the String to uncapitalize, may be null
9267
     * @return the uncapitalized String, {@code null} if null String input
9268
     * @see org.apache.commons.text.WordUtils#uncapitalize(String)
9269
     * @see #capitalize(String)
9270
     * @since 2.0
9271
     */
9272
    public static String uncapitalize(final String str) {
9273
        final int strLen = length(str);
9274 1 1. uncapitalize : negated conditional → KILLED
        if (strLen == 0) {
9275 1 1. uncapitalize : replaced return value with "" for org/apache/commons/lang3/StringUtils::uncapitalize → KILLED
            return str;
9276
        }
9277
9278
        final int firstCodePoint = str.codePointAt(0);
9279
        final int newCodePoint = Character.toLowerCase(firstCodePoint);
9280 1 1. uncapitalize : negated conditional → KILLED
        if (firstCodePoint == newCodePoint) {
9281
            // already capitalized
9282 1 1. uncapitalize : replaced return value with "" for org/apache/commons/lang3/StringUtils::uncapitalize → KILLED
            return str;
9283
        }
9284
9285
        final int[] newCodePoints = new int[strLen]; // cannot be longer than the char array
9286
        int outOffset = 0;
9287 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first code point
9288 2 1. uncapitalize : negated conditional → KILLED
2. uncapitalize : changed conditional boundary → KILLED
        for (int inOffset = Character.charCount(firstCodePoint); inOffset < strLen; ) {
9289
            final int codePoint = str.codePointAt(inOffset);
9290 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codePoint; // copy the remaining ones
9291 1 1. uncapitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codePoint);
9292
         }
9293 1 1. uncapitalize : replaced return value with "" for org/apache/commons/lang3/StringUtils::uncapitalize → KILLED
        return new String(newCodePoints, 0, outOffset);
9294
    }
9295
9296
    /**
9297
     * Unwraps a given string from a character.
9298
     *
9299
     * <pre>
9300
     * StringUtils.unwrap(null, null)         = null
9301
     * StringUtils.unwrap(null, '\0')         = null
9302
     * StringUtils.unwrap(null, '1')          = null
9303
     * StringUtils.unwrap("a", 'a')           = "a"
9304
     * StringUtils.unwrap("aa", 'a')           = ""
9305
     * StringUtils.unwrap("\'abc\'", '\'')    = "abc"
9306
     * StringUtils.unwrap("AABabcBAA", 'A')   = "ABabcBA"
9307
     * StringUtils.unwrap("A", '#')           = "A"
9308
     * StringUtils.unwrap("#A", '#')          = "#A"
9309
     * StringUtils.unwrap("A#", '#')          = "A#"
9310
     * </pre>
9311
     *
9312
     * @param str
9313
     *          the String to be unwrapped, can be null
9314
     * @param wrapChar
9315
     *          the character used to unwrap
9316
     * @return unwrapped String or the original string
9317
     *          if it is not quoted properly with the wrapChar
9318
     * @since 3.6
9319
     */
9320
    public static String unwrap(final String str, final char wrapChar) {
9321 3 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (isEmpty(str) || wrapChar == CharUtils.NUL || str.length() == 1) {
9322 1 1. unwrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED
            return str;
9323
        }
9324
9325 3 1. unwrap : Replaced integer subtraction with addition → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (str.charAt(0) == wrapChar && str.charAt(str.length() - 1) == wrapChar) {
9326
            final int startIndex = 0;
9327 1 1. unwrap : Replaced integer subtraction with addition → KILLED
            final int endIndex = str.length() - 1;
9328
9329 1 1. unwrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED
            return str.substring(startIndex + 1, endIndex);
9330
        }
9331
9332 1 1. unwrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED
        return str;
9333
    }
9334
9335
    /**
9336
     * Unwraps a given string from another string.
9337
     *
9338
     * <pre>
9339
     * StringUtils.unwrap(null, null)         = null
9340
     * StringUtils.unwrap(null, "")           = null
9341
     * StringUtils.unwrap(null, "1")          = null
9342
     * StringUtils.unwrap("a", "a")           = "a"
9343
     * StringUtils.unwrap("aa", "a")          = ""
9344
     * StringUtils.unwrap("\'abc\'", "\'")    = "abc"
9345
     * StringUtils.unwrap("\"abc\"", "\"")    = "abc"
9346
     * StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"
9347
     * StringUtils.unwrap("A", "#")           = "A"
9348
     * StringUtils.unwrap("#A", "#")          = "#A"
9349
     * StringUtils.unwrap("A#", "#")          = "A#"
9350
     * </pre>
9351
     *
9352
     * @param str
9353
     *          the String to be unwrapped, can be null
9354
     * @param wrapToken
9355
     *          the String used to unwrap
9356
     * @return unwrapped String or the original string
9357
     *          if it is not quoted properly with the wrapToken
9358
     * @since 3.6
9359
     */
9360
    public static String unwrap(final String str, final String wrapToken) {
9361 5 1. unwrap : Replaced integer multiplication with division → KILLED
2. unwrap : changed conditional boundary → KILLED
3. unwrap : negated conditional → KILLED
4. unwrap : negated conditional → KILLED
5. unwrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapToken) || str.length() < 2 * wrapToken.length()) {
9362 1 1. unwrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED
            return str;
9363
        }
9364
9365 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (startsWith(str, wrapToken) && endsWith(str, wrapToken)) {
9366 1 1. unwrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED
            return str.substring(wrapToken.length(), str.lastIndexOf(wrapToken));
9367
        }
9368
9369 1 1. unwrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED
        return str;
9370
    }
9371
9372
    /**
9373
     * Converts a String to upper case as per {@link String#toUpperCase()}.
9374
     *
9375
     * <p>A {@code null} input String returns {@code null}.</p>
9376
     *
9377
     * <pre>
9378
     * StringUtils.upperCase(null)  = null
9379
     * StringUtils.upperCase("")    = ""
9380
     * StringUtils.upperCase("aBc") = "ABC"
9381
     * </pre>
9382
     *
9383
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toUpperCase()},
9384
     * the result of this method is affected by the current locale.
9385
     * For platform-independent case transformations, the method {@link #upperCase(String, Locale)}
9386
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
9387
     *
9388
     * @param str  the String to upper case, may be null
9389
     * @return the upper-cased String, {@code null} if null String input
9390
     */
9391
    public static String upperCase(final String str) {
9392 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
9393 1 1. upperCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED
            return null;
9394
        }
9395 1 1. upperCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED
        return str.toUpperCase();
9396
    }
9397
9398
    /**
9399
     * Converts a String to upper case as per {@link String#toUpperCase(Locale)}.
9400
     *
9401
     * <p>A {@code null} input String returns {@code null}.</p>
9402
     *
9403
     * <pre>
9404
     * StringUtils.upperCase(null, Locale.ENGLISH)  = null
9405
     * StringUtils.upperCase("", Locale.ENGLISH)    = ""
9406
     * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
9407
     * </pre>
9408
     *
9409
     * @param str  the String to upper case, may be null
9410
     * @param locale  the locale that defines the case transformation rules, must not be null
9411
     * @return the upper-cased String, {@code null} if null String input
9412
     * @since 2.5
9413
     */
9414
    public static String upperCase(final String str, final Locale locale) {
9415 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
9416 1 1. upperCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED
            return null;
9417
        }
9418 1 1. upperCase : replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED
        return str.toUpperCase(LocaleUtils.toLocale(locale));
9419
    }
9420
9421
    /**
9422
     * Returns the string representation of the {@code char} array or null.
9423
     *
9424
     * @param value the character array.
9425
     * @return a String or null
9426
     * @see String#valueOf(char[])
9427
     * @since 3.9
9428
     */
9429
    public static String valueOf(final char[] value) {
9430 2 1. valueOf : negated conditional → KILLED
2. valueOf : replaced return value with "" for org/apache/commons/lang3/StringUtils::valueOf → KILLED
        return value == null ? null : String.valueOf(value);
9431
    }
9432
9433
    /**
9434
     * Wraps a string with a char.
9435
     *
9436
     * <pre>
9437
     * StringUtils.wrap(null, *)        = null
9438
     * StringUtils.wrap("", *)          = ""
9439
     * StringUtils.wrap("ab", '\0')     = "ab"
9440
     * StringUtils.wrap("ab", 'x')      = "xabx"
9441
     * StringUtils.wrap("ab", '\'')     = "'ab'"
9442
     * StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
9443
     * </pre>
9444
     *
9445
     * @param str
9446
     *            the string to be wrapped, may be {@code null}
9447
     * @param wrapWith
9448
     *            the char that will wrap {@code str}
9449
     * @return the wrapped string, or {@code null} if {@code str == null}
9450
     * @since 3.4
9451
     */
9452
    public static String wrap(final String str, final char wrapWith) {
9453
9454 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == CharUtils.NUL) {
9455 1 1. wrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED
            return str;
9456
        }
9457
9458 1 1. wrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED
        return wrapWith + str + wrapWith;
9459
    }
9460
9461
    /**
9462
     * Wraps a String with another String.
9463
     *
9464
     * <p>
9465
     * A {@code null} input String returns {@code null}.
9466
     * </p>
9467
     *
9468
     * <pre>
9469
     * StringUtils.wrap(null, *)         = null
9470
     * StringUtils.wrap("", *)           = ""
9471
     * StringUtils.wrap("ab", null)      = "ab"
9472
     * StringUtils.wrap("ab", "x")       = "xabx"
9473
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
9474
     * StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""
9475
     * StringUtils.wrap("ab", "'")       = "'ab'"
9476
     * StringUtils.wrap("'abcd'", "'")   = "''abcd''"
9477
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
9478
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
9479
     * </pre>
9480
     *
9481
     * @param str
9482
     *            the String to be wrapper, may be null
9483
     * @param wrapWith
9484
     *            the String that will wrap str
9485
     * @return wrapped String, {@code null} if null String input
9486
     * @since 3.4
9487
     */
9488
    public static String wrap(final String str, final String wrapWith) {
9489
9490 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
9491 1 1. wrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED
            return str;
9492
        }
9493
9494 1 1. wrap : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED
        return wrapWith.concat(str).concat(wrapWith);
9495
    }
9496
9497
    /**
9498
     * Wraps a string with a char if that char is missing from the start or end of the given string.
9499
     *
9500
     * <p>A new {@link String} will not be created if {@code str} is already wrapped.</p>
9501
     *
9502
     * <pre>
9503
     * StringUtils.wrapIfMissing(null, *)        = null
9504
     * StringUtils.wrapIfMissing("", *)          = ""
9505
     * StringUtils.wrapIfMissing("ab", '\0')     = "ab"
9506
     * StringUtils.wrapIfMissing("ab", 'x')      = "xabx"
9507
     * StringUtils.wrapIfMissing("ab", '\'')     = "'ab'"
9508
     * StringUtils.wrapIfMissing("\"ab\"", '\"') = "\"ab\""
9509
     * StringUtils.wrapIfMissing("/", '/')  = "/"
9510
     * StringUtils.wrapIfMissing("a/b/c", '/')  = "/a/b/c/"
9511
     * StringUtils.wrapIfMissing("/a/b/c", '/')  = "/a/b/c/"
9512
     * StringUtils.wrapIfMissing("a/b/c/", '/')  = "/a/b/c/"
9513
     * </pre>
9514
     *
9515
     * @param str
9516
     *            the string to be wrapped, may be {@code null}
9517
     * @param wrapWith
9518
     *            the char that will wrap {@code str}
9519
     * @return the wrapped string, or {@code null} if {@code str == null}
9520
     * @since 3.5
9521
     */
9522
    public static String wrapIfMissing(final String str, final char wrapWith) {
9523 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == CharUtils.NUL) {
9524 1 1. wrapIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED
            return str;
9525
        }
9526 1 1. wrapIfMissing : negated conditional → KILLED
        final boolean wrapStart = str.charAt(0) != wrapWith;
9527 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : Replaced integer subtraction with addition → KILLED
        final boolean wrapEnd = str.charAt(str.length() - 1) != wrapWith;
9528 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (!wrapStart && !wrapEnd) {
9529 1 1. wrapIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED
            return str;
9530
        }
9531
9532 1 1. wrapIfMissing : Replaced integer addition with subtraction → KILLED
        final StringBuilder builder = new StringBuilder(str.length() + 2);
9533 1 1. wrapIfMissing : negated conditional → KILLED
        if (wrapStart) {
9534
            builder.append(wrapWith);
9535
        }
9536
        builder.append(str);
9537 1 1. wrapIfMissing : negated conditional → KILLED
        if (wrapEnd) {
9538
            builder.append(wrapWith);
9539
        }
9540 1 1. wrapIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED
        return builder.toString();
9541
    }
9542
9543
    /**
9544
     * Wraps a string with a string if that string is missing from the start or end of the given string.
9545
     *
9546
     * <p>A new {@link String} will not be created if {@code str} is already wrapped.</p>
9547
     *
9548
     * <pre>
9549
     * StringUtils.wrapIfMissing(null, *)         = null
9550
     * StringUtils.wrapIfMissing("", *)           = ""
9551
     * StringUtils.wrapIfMissing("ab", null)      = "ab"
9552
     * StringUtils.wrapIfMissing("ab", "x")       = "xabx"
9553
     * StringUtils.wrapIfMissing("ab", "\"")      = "\"ab\""
9554
     * StringUtils.wrapIfMissing("\"ab\"", "\"")  = "\"ab\""
9555
     * StringUtils.wrapIfMissing("ab", "'")       = "'ab'"
9556
     * StringUtils.wrapIfMissing("'abcd'", "'")   = "'abcd'"
9557
     * StringUtils.wrapIfMissing("\"abcd\"", "'") = "'\"abcd\"'"
9558
     * StringUtils.wrapIfMissing("'abcd'", "\"")  = "\"'abcd'\""
9559
     * StringUtils.wrapIfMissing("/", "/")  = "/"
9560
     * StringUtils.wrapIfMissing("a/b/c", "/")  = "/a/b/c/"
9561
     * StringUtils.wrapIfMissing("/a/b/c", "/")  = "/a/b/c/"
9562
     * StringUtils.wrapIfMissing("a/b/c/", "/")  = "/a/b/c/"
9563
     * </pre>
9564
     *
9565
     * @param str
9566
     *            the string to be wrapped, may be {@code null}
9567
     * @param wrapWith
9568
     *            the string that will wrap {@code str}
9569
     * @return the wrapped string, or {@code null} if {@code str == null}
9570
     * @since 3.5
9571
     */
9572
    public static String wrapIfMissing(final String str, final String wrapWith) {
9573 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
9574 1 1. wrapIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED
            return str;
9575
        }
9576
9577 1 1. wrapIfMissing : negated conditional → KILLED
        final boolean wrapStart = !str.startsWith(wrapWith);
9578 1 1. wrapIfMissing : negated conditional → KILLED
        final boolean wrapEnd = !str.endsWith(wrapWith);
9579 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (!wrapStart && !wrapEnd) {
9580 1 1. wrapIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED
            return str;
9581
        }
9582
9583 2 1. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
2. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder builder = new StringBuilder(str.length() + wrapWith.length() + wrapWith.length());
9584 1 1. wrapIfMissing : negated conditional → KILLED
        if (wrapStart) {
9585
            builder.append(wrapWith);
9586
        }
9587
        builder.append(str);
9588 1 1. wrapIfMissing : negated conditional → KILLED
        if (wrapEnd) {
9589
            builder.append(wrapWith);
9590
        }
9591 1 1. wrapIfMissing : replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED
        return builder.toString();
9592
    }
9593
9594
    /**
9595
     * {@link StringUtils} instances should NOT be constructed in
9596
     * standard programming. Instead, the class should be used as
9597
     * {@code StringUtils.trim(" foo ");}.
9598
     *
9599
     * <p>This constructor is public to permit tools that require a JavaBean
9600
     * instance to operate.</p>
9601
     *
9602
     * @deprecated TODO Make private in 4.0.
9603
     */
9604
    @Deprecated
9605
    public StringUtils() {
9606
        // empty
9607
    }
9608
9609
}

Mutations

222

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

261

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringIntInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

301

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

341

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

4.4
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

342

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

344

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

345

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

348

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
Replaced integer addition with subtraction → KILLED

349

1.1
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

351

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

355

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
changed conditional boundary → KILLED

356

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

358

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

361

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

362

1.1
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer subtraction with addition → KILLED

364

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer addition with subtraction → KILLED

365

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
Replaced integer subtraction with addition → KILLED

367

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
negated conditional → KILLED

370

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
negated conditional → KILLED

371

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

373

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
Replaced integer subtraction with addition → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringStringIntInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviate → KILLED

406

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer addition with subtraction → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
negated conditional → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
changed conditional boundary → KILLED

4.4
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
negated conditional → KILLED

5.5
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
negated conditional → KILLED

6.6
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
changed conditional boundary → KILLED

407

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviateMiddle → KILLED

409

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer subtraction with addition → KILLED

410

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer addition with subtraction → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer modulus with multiplication → KILLED

411

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
Replaced integer division with multiplication → KILLED

412

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::abbreviateMiddle → KILLED

427

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
negated conditional → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
negated conditional → KILLED

428

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED

430

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
negated conditional → KILLED

432

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
negated conditional → KILLED

433

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED

437

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED

475

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissing → KILLED

513

1.1
Location : appendIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissingIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase → KILLED

539

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
negated conditional → KILLED

540

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCapitalize()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::capitalize → KILLED

545

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
negated conditional → KILLED

547

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCapitalize()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::capitalize → KILLED

552

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
Changed increment from 1 to -1 → KILLED

553

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
changed conditional boundary → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
negated conditional → KILLED

555

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
Changed increment from 1 to -1 → KILLED

556

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
Replaced integer addition with subtraction → KILLED

558

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReCapitalize()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::capitalize → KILLED

585

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

613

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
negated conditional → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
negated conditional → KILLED

3.3
Location : center
Killed by : none
changed conditional boundary → SURVIVED

614

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

617

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
Replaced integer subtraction with addition → KILLED

618

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
negated conditional → KILLED

2.2
Location : center
Killed by : none
changed conditional boundary → SURVIVED

619

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

621

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
Replaced integer addition with subtraction → KILLED

622

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

652

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
negated conditional → KILLED

2.2
Location : center
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
negated conditional → KILLED

653

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

655

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
negated conditional → KILLED

659

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
Replaced integer subtraction with addition → KILLED

660

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
negated conditional → KILLED

661

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

663

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
Replaced integer addition with subtraction → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
Replaced integer division with multiplication → KILLED

664

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testCenter_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::center → KILLED

693

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

694

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED

697

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

699

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

702

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED

705

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
Replaced integer subtraction with addition → KILLED

708

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

709

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
Replaced integer subtraction with addition → KILLED

710

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
Changed increment from -1 to 1 → KILLED

712

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
negated conditional → KILLED

713

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
Changed increment from 1 to -1 → KILLED

715

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED

747

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChomp()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chomp → KILLED

774

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
negated conditional → KILLED

775

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chop → KILLED

778

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
negated conditional → KILLED

2.2
Location : chop
Killed by : none
changed conditional boundary → SURVIVED

781

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
Replaced integer subtraction with addition → KILLED

784

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
negated conditional → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
negated conditional → KILLED

3.3
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
Replaced integer subtraction with addition → KILLED

785

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chop → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
Replaced integer subtraction with addition → KILLED

787

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testChop()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::chop → KILLED

823

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED

861

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
negated conditional → KILLED

864

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
negated conditional → KILLED

865

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED

867

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
negated conditional → KILLED

868

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED

870

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompare_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compare → KILLED

911

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED

954

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

957

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

958

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompareIgnoreCase_StringString()]
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompareIgnoreCase_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED

960

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

961

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompareIgnoreCase_StringString()]
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testCompareIgnoreCase_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED

963

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::compareIgnoreCase → KILLED

989

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_StringWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_StringWithSupplementaryChars()]
negated conditional → KILLED

990

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_Char()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED

992

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_StringWithSupplementaryChars()]
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_StringWithSupplementaryChars()]
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_StringWithSupplementaryChars()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED

1016

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_Char()]
negated conditional → KILLED

1017

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_Char()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED

1019

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_Char()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::contains → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_Char()]
changed conditional boundary → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContains_Char()]
negated conditional → KILLED

1048

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

1049

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1053

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
Replaced integer subtraction with addition → KILLED

1054

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
Replaced integer subtraction with addition → KILLED

1055

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

1057

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

1058

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

1059

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

1061

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArray()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1063

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

1065

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1067

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
changed conditional boundary → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

4.4
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
negated conditional → KILLED

5.5
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

1068

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithSupplementaryChars()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1073

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringCharArrayWithBadSupplementaryChars()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1106

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringWithBadSupplementaryChars()]
negated conditional → KILLED

1107

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringString()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1109

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringWithBadSupplementaryChars()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringWithBadSupplementaryChars()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1137

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringStringArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringStringArray()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1156

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
negated conditional → KILLED

1157

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1160

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
negated conditional → KILLED

1161

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1164

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAny_StringStringArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAny → KILLED

1194

1.1
Location : containsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsAnyIgnoreCase → KILLED

2.2
Location : containsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsAnyIgnoreCase_StringStringArray()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsAnyIgnoreCase → KILLED

1222

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
negated conditional → KILLED

1223

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsIgnoreCase → KILLED

1226

1.1
Location : containsIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1227

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
changed conditional boundary → KILLED

1228

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
negated conditional → KILLED

1229

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsIgnoreCase → KILLED

1232

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsIgnoreCase_StringString()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsIgnoreCase → KILLED

1259

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

1260

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_String()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1263

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
Replaced integer subtraction with addition → KILLED

1265

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
Replaced integer subtraction with addition → KILLED

1266

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testEscapeSurrogatePairs()]
changed conditional boundary → KILLED

1268

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testEscapeSurrogatePairs()]
changed conditional boundary → KILLED

1269

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testEscapeSurrogatePairs()]
negated conditional → KILLED

1270

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

1272

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_String()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1274

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

1276

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1278

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_CharArrayWithSupplementaryChars()]
negated conditional → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
changed conditional boundary → KILLED

4.4
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_CharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

5.5
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_CharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

1279

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_CharArrayWithSupplementaryChars()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1284

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testEscapeSurrogatePairs()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1311

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
negated conditional → KILLED

1312

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_String()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1314

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsNone → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsNone_StringWithBadSupplementaryChars()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsNone → KILLED

1341

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

1342

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_CharArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

1344

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_CharArray()]
negated conditional → KILLED

1345

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_CharArray()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

1347

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

1348

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_CharArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

1350

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_CharArray()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

1377

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_String()]
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_String()]
negated conditional → KILLED

1378

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_String()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

1380

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_String()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsOnly_String()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsOnly → KILLED

1395

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
negated conditional → KILLED

1396

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsWhitespace → KILLED

1399

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
negated conditional → KILLED

2.2
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
changed conditional boundary → KILLED

1400

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
negated conditional → KILLED

1401

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::containsWhitespace → KILLED

1404

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsContainsTest]/[method:testContainsWhitespace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::containsWhitespace → KILLED

1408

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
changed conditional boundary → KILLED

2.2
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
negated conditional → KILLED

1412

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccents()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1415

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccents()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1420

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccents()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1424

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccents()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1428

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1431

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1434

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1437

1.1
Location : convertRemainingAccentCharacters
Killed by : none
removed call to java/lang/StringBuilder::setCharAt → NO_COVERAGE

1440

1.1
Location : convertRemainingAccentCharacters
Killed by : none
removed call to java/lang/StringBuilder::setCharAt → NO_COVERAGE

1445

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsUWithBar()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1449

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsUWithBar()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1453

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsUWithBar()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1457

1.1
Location : convertRemainingAccentCharacters
Killed by : none
removed call to java/lang/StringBuilder::setCharAt → NO_COVERAGE

1462

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsTWithStroke()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1466

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsTWithStroke()]
removed call to java/lang/StringBuilder::setCharAt → KILLED

1494

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
negated conditional → KILLED

1499

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
changed conditional boundary → KILLED

1500

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
negated conditional → KILLED

1501

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
Changed increment from 1 to -1 → KILLED

1504

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::countMatches → KILLED

1530

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
negated conditional → KILLED

1535

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
negated conditional → KILLED

1536

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
Changed increment from 1 to -1 → KILLED

1537

1.1
Location : countMatches
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

1539

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testCountMatches_char()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::countMatches → KILLED

1563

1.1
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
replaced return value with null for org/apache/commons/lang3/StringUtils::defaultIfBlank → KILLED

2.2
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
negated conditional → KILLED

1585

1.1
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfEmpty_StringBuilders()]
negated conditional → KILLED

2.2
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfEmpty_StringBuilders()]
replaced return value with null for org/apache/commons/lang3/StringUtils::defaultIfEmpty → KILLED

1605

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefault_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::defaultString → KILLED

1636

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefault_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::defaultString → KILLED

1654

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
negated conditional → KILLED

1655

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::deleteWhitespace → KILLED

1660

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
changed conditional boundary → KILLED

2.2
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
negated conditional → KILLED

1661

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
negated conditional → KILLED

1662

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
Changed increment from 1 to -1 → KILLED

1665

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
negated conditional → KILLED

1666

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::deleteWhitespace → KILLED

1668

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
negated conditional → KILLED

1671

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDeleteWhitespace_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::deleteWhitespace → KILLED

1703

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifference_StringString()]
negated conditional → KILLED

1704

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifference_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::difference → KILLED

1706

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifference_StringString()]
negated conditional → KILLED

1707

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifference_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::difference → KILLED

1710

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifference_StringString()]
negated conditional → KILLED

1713

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifference_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::difference → KILLED

1741

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWith → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringString()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED

1756

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
negated conditional → KILLED

1757

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWith()]
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWith()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED

1759

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
changed conditional boundary → KILLED

1760

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAppendIfMissing()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED

1762

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
Replaced integer subtraction with addition → KILLED

1763

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWith → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWith → KILLED

1788

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWithAny()]
negated conditional → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWithAny()]
negated conditional → KILLED

1789

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWithAny()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWithAny → KILLED

1792

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWithAny()]
negated conditional → KILLED

1793

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWithAny()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWithAny → KILLED

1796

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testEndsWithAny()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWithAny → KILLED

1823

1.1
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::endsWithIgnoreCase → KILLED

2.2
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::endsWithIgnoreCase → KILLED

1849

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
negated conditional → KILLED

1850

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equals → KILLED

1852

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
negated conditional → KILLED

1853

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED

1855

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
negated conditional → KILLED

1856

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED

1858

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEquals()]
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAny()]
negated conditional → KILLED

1859

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equals → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsOnStrings()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED

1863

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEquals()]
changed conditional boundary → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEquals()]
negated conditional → KILLED

1864

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEquals()]
negated conditional → KILLED

1865

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEquals()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equals → KILLED

1868

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEquals()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equals → KILLED

1891

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAny()]
negated conditional → KILLED

1893

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAny()]
negated conditional → KILLED

1894

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAny()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsAny → KILLED

1898

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAny()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsAny → KILLED

1921

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAnyIgnoreCase()]
negated conditional → KILLED

1923

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAnyIgnoreCase()]
negated conditional → KILLED

1924

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAnyIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsAnyIgnoreCase → KILLED

1928

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsAnyIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsAnyIgnoreCase → KILLED

1953

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
negated conditional → KILLED

1954

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED

1956

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
negated conditional → KILLED

1957

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED

1959

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
negated conditional → KILLED

1960

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED

1962

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testEqualsIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::equalsIgnoreCase → KILLED

1992

1.1
Location : firstNonBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testFirstNonBlank()]
negated conditional → KILLED

1994

1.1
Location : firstNonBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testFirstNonBlank()]
negated conditional → KILLED

1995

1.1
Location : firstNonBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testFirstNonBlank()]
replaced return value with null for org/apache/commons/lang3/StringUtils::firstNonBlank → KILLED

2027

1.1
Location : firstNonEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testFirstNonEmpty()]
negated conditional → KILLED

2029

1.1
Location : firstNonEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testFirstNonEmpty()]
negated conditional → KILLED

2030

1.1
Location : firstNonEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testFirstNonEmpty()]
replaced return value with null for org/apache/commons/lang3/StringUtils::firstNonEmpty → KILLED

2047

1.1
Location : getBytes
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetBytes_Charset()]
negated conditional → KILLED

2.2
Location : getBytes
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetBytes_Charset()]
replaced return value with null for org/apache/commons/lang3/StringUtils::getBytes → KILLED

2061

1.1
Location : getBytes
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetBytes_String()]
replaced return value with null for org/apache/commons/lang3/StringUtils::getBytes → KILLED

2.2
Location : getBytes
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetBytes_String()]
negated conditional → KILLED

2098

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

2102

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

2104

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

2107

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::getCommonPrefix → KILLED

2109

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

2114

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::getCommonPrefix → KILLED

2140

1.1
Location : getDigits
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetDigits()]
negated conditional → KILLED

2141

1.1
Location : getDigits
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetDigits()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::getDigits → KILLED

2145

1.1
Location : getDigits
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetDigits()]
changed conditional boundary → KILLED

2.2
Location : getDigits
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetDigits()]
negated conditional → KILLED

2147

1.1
Location : getDigits
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetDigits()]
negated conditional → KILLED

2151

1.1
Location : getDigits
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetDigits()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::getDigits → KILLED

2185

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance_StringNullLoclae()]
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance_NullStringLocale()]
negated conditional → KILLED

2188

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance_StringStringNull()]
negated conditional → KILLED

2209

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
negated conditional → KILLED

2213

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
negated conditional → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
changed conditional boundary → KILLED

2216

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
negated conditional → KILLED

2218

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
Changed increment from 1 to -1 → KILLED

2222

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
Replaced integer addition with subtraction → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
negated conditional → KILLED

2223

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
Changed increment from 2 to -2 → KILLED

2235

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetFuzzyDistance()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getFuzzyDistance → KILLED

2264

1.1
Location : getIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetIfBlank_StringStringSupplier()]
negated conditional → KILLED

2.2
Location : getIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetIfBlank_StringStringSupplier()]
replaced return value with null for org/apache/commons/lang3/StringUtils::getIfBlank → KILLED

2292

1.1
Location : getIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetIfEmpty_StringStringSupplier()]
replaced return value with null for org/apache/commons/lang3/StringUtils::getIfEmpty → KILLED

2.2
Location : getIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfEmpty_StringString()]
negated conditional → KILLED

2334

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringNull()]
negated conditional → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_NullString()]
negated conditional → KILLED

2340

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

2343

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double addition with subtraction → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double division with multiplication → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double addition with subtraction → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double subtraction with addition → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double division with multiplication → KILLED

2344

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double multiplication with division → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double subtraction with addition → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double multiplication with division → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double addition with subtraction → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : none
changed conditional boundary → SURVIVED

2345

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
replaced double return with 0.0d for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

2385

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_NullString()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringNull()]
negated conditional → KILLED

2392

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
negated conditional → KILLED

2393

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2395

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
negated conditional → KILLED

2396

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2399

1.1
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2408

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer addition with subtraction → KILLED

2418

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

2422

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
negated conditional → KILLED

2424

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer subtraction with addition → KILLED

2427

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
negated conditional → KILLED

2429

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
negated conditional → KILLED

2431

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer addition with subtraction → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
Replaced integer addition with subtraction → KILLED

2436

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2476

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringNullInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_NullStringInt()]
negated conditional → KILLED

2479

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringNegativeInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2531

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2532

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : none
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → SURVIVED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2534

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2535

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2537

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2539

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2542

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

2551

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer addition with subtraction → KILLED

2552

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer addition with subtraction → KILLED

2556

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer addition with subtraction → KILLED

2557

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

2562

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

2563

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

2566

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2567

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2571

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2572

1.1
Location : getLevenshteinDistance
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2575

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2576

1.1
Location : getLevenshteinDistance
Killed by : none
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → NO_COVERAGE

2580

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2581

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2585

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2586

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2588

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2591

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
Replaced integer subtraction with addition → KILLED

2603

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
negated conditional → KILLED

2604

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2606

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetLevenshteinDistance_StringStringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::getLevenshteinDistance → KILLED

2634

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_String()]
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_String()]
negated conditional → KILLED

2635

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2637

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2674

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

2675

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.text.StrBuilderTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.text.StrBuilderTest]/[method:testContains_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2677

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2718

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_char()]
negated conditional → KILLED

2719

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_char()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2721

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_char()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2777

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_charInt()]
negated conditional → KILLED

2778

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_charInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2780

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOf_charInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOf → KILLED

2807

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2808

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2811

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2813

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2814

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2816

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
changed conditional boundary → KILLED

2817

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2818

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

4.4
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

5.5
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2819

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2822

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

2823

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2828

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringCharArrayWithSupplementaryChars()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2859

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
negated conditional → KILLED

2860

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2868

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
negated conditional → KILLED

2872

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
negated conditional → KILLED

2876

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
negated conditional → KILLED

2881

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringArray()]
negated conditional → KILLED

2908

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2909

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2911

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAny_StringStringWithSupplementaryChars()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAny → KILLED

2939

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2940

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

2943

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2945

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2947

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
changed conditional boundary → KILLED

2949

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
changed conditional boundary → KILLED

2950

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

2951

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

5.5
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2954

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

2959

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringCharArrayWithSupplementaryChars()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

2961

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

2988

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2989

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

2992

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
changed conditional boundary → KILLED

2994

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
changed conditional boundary → KILLED

2995

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

4.4
Location : indexOfAnyBut
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2996

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
Replaced integer addition with subtraction → KILLED

2997

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

2998

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

3000

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
negated conditional → KILLED

3001

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

3004

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfAnyBut_StringStringWithSupplementaryChars()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfAnyBut → KILLED

3040

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringArray()]
negated conditional → KILLED

3041

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED

3053

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringArray()]
negated conditional → KILLED

3064

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringArray()]
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : none
negated conditional → SURVIVED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

3065

1.1
Location : indexOfDifference
Killed by : none
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → SURVIVED

3069

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

3075

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
changed conditional boundary → KILLED

3077

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

3078

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

3083

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

3088

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
negated conditional → KILLED

3092

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED

3094

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetCommonPrefix_StringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED

3123

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

3124

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED

3126

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

3130

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
changed conditional boundary → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
changed conditional boundary → KILLED

3131

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

3135

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

4.4
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

3136

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDifferenceAt_StringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → KILLED

3138

1.1
Location : indexOfDifference
Killed by : none
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfDifference → NO_COVERAGE

3168

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED

3204

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
negated conditional → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
negated conditional → KILLED

3205

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfIgnoreCase_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED

3207

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
negated conditional → KILLED

3210

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3211

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
negated conditional → KILLED

3212

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED

3214

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
negated conditional → KILLED

3215

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testIndexOfIgnoreCase_StringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED

3217

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
negated conditional → KILLED

3218

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
negated conditional → KILLED

3219

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED

3222

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveIgnoreCase_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::indexOfIgnoreCase → KILLED

3247

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllBlank()]
negated conditional → KILLED

3248

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllBlank()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllBlank → KILLED

3251

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllBlank()]
negated conditional → KILLED

3252

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllBlank()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllBlank → KILLED

3255

1.1
Location : isAllBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllBlank()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllBlank → KILLED

3278

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllEmpty()]
negated conditional → KILLED

3279

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllEmpty()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllEmpty → KILLED

3282

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllEmpty()]
negated conditional → KILLED

3283

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllEmpty()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllEmpty → KILLED

3286

1.1
Location : isAllEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAllEmpty()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllEmpty → KILLED

3312

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
negated conditional → KILLED

3313

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllLowerCase → KILLED

3316

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
changed conditional boundary → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
negated conditional → KILLED

3317

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
negated conditional → KILLED

3318

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllLowerCase → KILLED

3321

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllLowerCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllLowerCase → KILLED

3347

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
negated conditional → KILLED

3348

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllUpperCase → KILLED

3351

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
changed conditional boundary → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
negated conditional → KILLED

3352

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
negated conditional → KILLED

3353

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAllUpperCase → KILLED

3356

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsAllUpperCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAllUpperCase → KILLED

3380

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
negated conditional → KILLED

3381

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlpha → KILLED

3384

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
negated conditional → KILLED

2.2
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
changed conditional boundary → KILLED

3385

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
negated conditional → KILLED

3386

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlpha → KILLED

3389

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlpha()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlpha → KILLED

3415

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
negated conditional → KILLED

3416

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumeric → KILLED

3419

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
changed conditional boundary → KILLED

2.2
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
negated conditional → KILLED

3420

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
negated conditional → KILLED

3421

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumeric → KILLED

3424

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumeric()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlphanumeric → KILLED

3450

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
negated conditional → KILLED

3451

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumericSpace → KILLED

3454

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
changed conditional boundary → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
negated conditional → KILLED

3456

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
negated conditional → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
negated conditional → KILLED

3457

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphanumericSpace → KILLED

3460

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphanumericSpace()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlphanumericSpace → KILLED

3486

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
negated conditional → KILLED

3487

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphaSpace → KILLED

3490

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
changed conditional boundary → KILLED

3492

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
negated conditional → KILLED

3493

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAlphaSpace → KILLED

3496

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAlphaspace()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAlphaSpace → KILLED

3523

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAnyBlank()]
negated conditional → KILLED

3524

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAnyBlank()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyBlank → KILLED

3527

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAnyBlank()]
negated conditional → KILLED

3528

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAnyBlank()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAnyBlank → KILLED

3531

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAnyBlank()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyBlank → KILLED

3555

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

3556

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsAnyEmpty()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyEmpty → KILLED

3559

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
negated conditional → KILLED

3560

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAnyEmpty → KILLED

3563

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviate_StringInt()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAnyEmpty → KILLED

3593

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
negated conditional → KILLED

3594

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAsciiPrintable → KILLED

3597

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
changed conditional boundary → KILLED

2.2
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
negated conditional → KILLED

3598

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
negated conditional → KILLED

3599

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isAsciiPrintable → KILLED

3602

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsAsciiPrintable_String()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isAsciiPrintable → KILLED

3625

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
negated conditional → KILLED

3626

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isBlank → KILLED

3628

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
changed conditional boundary → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
negated conditional → KILLED

3629

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
negated conditional → KILLED

3630

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isBlank → KILLED

3633

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testDefaultIfBlank_StringString()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isBlank → KILLED

3656

1.1
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
negated conditional → KILLED

2.2
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
negated conditional → KILLED

3.3
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isEmpty → KILLED

3683

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

2.2
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

3684

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isMixedCase → KILLED

3689

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
changed conditional boundary → KILLED

2.2
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

3691

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

3693

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

3696

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

2.2
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
negated conditional → KILLED

3697

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isMixedCase → KILLED

3700

1.1
Location : isMixedCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testIsMixedCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isMixedCase → KILLED

3727

1.1
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsNoneBlank()]
negated conditional → KILLED

2.2
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsNoneBlank()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNoneBlank → KILLED

3751

1.1
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsNoneEmpty()]
negated conditional → KILLED

2.2
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsNoneEmpty()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNoneEmpty → KILLED

3774

1.1
Location : isNotBlank
Killed by : org.apache.commons.lang3.reflect.FieldUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.reflect.FieldUtilsTest]/[method:testGetFieldForceAccessIllegalArgumentException2()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNotBlank → KILLED

2.2
Location : isNotBlank
Killed by : org.apache.commons.lang3.reflect.FieldUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.reflect.FieldUtilsTest]/[method:testGetFieldForceAccessIllegalArgumentException2()]
negated conditional → KILLED

3793

1.1
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

2.2
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEmptyBlankTest]/[method:testIsNotEmpty()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNotEmpty → KILLED

3828

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
negated conditional → KILLED

3829

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumeric → KILLED

3832

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
changed conditional boundary → KILLED

2.2
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
negated conditional → KILLED

3833

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
negated conditional → KILLED

3834

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumeric → KILLED

3837

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.math.NumberUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.math.NumberUtilsTest]/[method:testIsDigits()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isNumeric → KILLED

3867

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
negated conditional → KILLED

3868

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumericSpace → KILLED

3871

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
changed conditional boundary → KILLED

3873

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
negated conditional → KILLED

3874

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isNumericSpace → KILLED

3877

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsNumericSpace()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isNumericSpace → KILLED

3903

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
negated conditional → KILLED

3904

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isWhitespace → KILLED

3907

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
negated conditional → KILLED

2.2
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
changed conditional boundary → KILLED

3908

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
negated conditional → KILLED

3909

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::isWhitespace → KILLED

3912

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsIsTest]/[method:testIsWhitespace()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::isWhitespace → KILLED

3938

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
negated conditional → KILLED

3939

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

3941

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

3973

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
negated conditional → KILLED

3974

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

3976

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
changed conditional boundary → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
negated conditional → KILLED

3979

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : join
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3980

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
negated conditional → KILLED

3985

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBooleans()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4012

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
negated conditional → KILLED

4013

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4015

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4048

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
negated conditional → KILLED

4049

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4051

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
Replaced integer subtraction with addition → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
negated conditional → KILLED

4055

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
changed conditional boundary → KILLED

4060

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfBytes()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4087

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
negated conditional → KILLED

4088

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4090

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4123

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
negated conditional → KILLED

4124

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4126

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
changed conditional boundary → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
Replaced integer subtraction with addition → KILLED

4129

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4130

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
negated conditional → KILLED

4135

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfChars()]
Replaced integer subtraction with addition → KILLED

4162

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
negated conditional → KILLED

4163

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4165

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4198

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
negated conditional → KILLED

4199

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4201

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
negated conditional → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
changed conditional boundary → KILLED

4205

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
negated conditional → KILLED

4210

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfDoubles()]
Replaced integer subtraction with addition → KILLED

4237

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
negated conditional → KILLED

4238

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4240

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4273

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
negated conditional → KILLED

4274

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4276

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
changed conditional boundary → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
negated conditional → KILLED

4280

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
changed conditional boundary → KILLED

4285

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfFloats()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4312

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
negated conditional → KILLED

4313

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4315

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4348

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
negated conditional → KILLED

4349

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4351

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
changed conditional boundary → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
Replaced integer subtraction with addition → KILLED

4355

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
changed conditional boundary → KILLED

4360

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfInts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4378

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_IterableChar()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_IterableChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4396

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_EmptyDelimiter()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_EmptyDelimiter()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4415

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
negated conditional → KILLED

4416

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_IteratorChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4418

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
negated conditional → KILLED

4421

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4439

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_EmptyDelimiter()]
negated conditional → KILLED

4440

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_IteratorString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4442

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_EmptyDelimiter()]
negated conditional → KILLED

4445

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_EmptyDelimiter()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4475

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
negated conditional → KILLED

4476

1.1
Location : join
Killed by : none
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → SURVIVED

4478

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
Replaced integer subtraction with addition → KILLED

4479

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
negated conditional → KILLED

4483

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_CharDelimiter()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4513

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_List_EmptyDelimiter()]
negated conditional → KILLED

4514

1.1
Location : join
Killed by : none
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → SURVIVED

4516

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[test-template:testJoin_List_NonEmptyDelimiter(java.lang.String)]/[test-template-invocation:#2]
Replaced integer subtraction with addition → KILLED

4517

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[test-template:testJoin_List_NonEmptyDelimiter(java.lang.String)]/[test-template-invocation:#2]
negated conditional → KILLED

2.2
Location : join
Killed by : none
changed conditional boundary → SURVIVED

4521

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[test-template:testJoin_List_NonEmptyDelimiter(java.lang.String)]/[test-template-invocation:#2]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4548

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
negated conditional → KILLED

4549

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4551

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4584

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
negated conditional → KILLED

4585

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4587

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
changed conditional boundary → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
Replaced integer subtraction with addition → KILLED

4591

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
negated conditional → KILLED

4596

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfLongs()]
Replaced integer subtraction with addition → KILLED

4622

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayCharSeparator()]
negated conditional → KILLED

4623

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayCharSeparator()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4625

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayCharSeparator()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4655

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayCharSeparator()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4682

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_Objects()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_Objects()]
negated conditional → KILLED

4721

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_Objects()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_Objects()]
negated conditional → KILLED

3.3
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4749

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
negated conditional → KILLED

4750

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4752

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4785

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
negated conditional → KILLED

4786

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4788

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
negated conditional → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
changed conditional boundary → KILLED

4792

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
negated conditional → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
changed conditional boundary → KILLED

4797

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
Replaced integer subtraction with addition → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_ArrayOfShorts()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4824

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_Objects()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::join → KILLED

4848

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoinWithThrowsException()]
negated conditional → KILLED

4851

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[test-template:testJoinWith(java.lang.String)]/[test-template-invocation:#2]
replaced return value with "" for org/apache/commons/lang3/StringUtils::joinWith → KILLED

4878

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_String()]
negated conditional → KILLED

4879

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

4881

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

4920

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_StringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

4958

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_char()]
negated conditional → KILLED

4959

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_char()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

4961

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_char()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

5009

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_charInt()]
negated conditional → KILLED

5010

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_charInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

5012

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOf_charInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOf → KILLED

5042

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfAny_StringStringArray()]
negated conditional → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfAny_StringStringArray()]
negated conditional → KILLED

5043

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfAny_StringStringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfAny → KILLED

5048

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfAny_StringStringArray()]
negated conditional → KILLED

5052

1.1
Location : lastIndexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfAny_StringStringArray()]
negated conditional → KILLED

5056

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfAny_StringStringArray()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfAny → KILLED

5083

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

5084

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfIgnoreCase_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5086

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5122

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

5123

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfIgnoreCase_StringInt()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5127

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfIgnoreCase_StringInt()]
negated conditional → KILLED

3.3
Location : lastIndexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

5128

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5130

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

5131

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfIgnoreCase_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5133

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

5134

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfIgnoreCase_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5137

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

5138

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
negated conditional → KILLED

5139

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastIndexOfIgnoreCase_String()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5142

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastIndexOfIgnoreCase → KILLED

5180

1.1
Location : lastOrdinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastOrdinalIndexOf()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::lastOrdinalIndexOf → KILLED

5204

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testLeft_String()]
negated conditional → KILLED

5205

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testLeft_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::left → KILLED

5207

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testLeft_String()]
negated conditional → KILLED

2.2
Location : left
Killed by : none
changed conditional boundary → SURVIVED

5210

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testLeft_String()]
negated conditional → KILLED

5211

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testLeft_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::left → KILLED

5213

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testLeft_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::left → KILLED

5236

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5261

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
negated conditional → KILLED

5262

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5264

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
Replaced integer subtraction with addition → KILLED

5265

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
negated conditional → KILLED

2.2
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

5266

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5268

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
negated conditional → KILLED

2.2
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

5269

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5271

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5298

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

5299

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5301

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

5306

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
Replaced integer subtraction with addition → KILLED

5307

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

5308

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5310

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntChar()]
negated conditional → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

3.3
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

5311

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5314

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

5315

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5317

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

2.2
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

5318

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5322

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
changed conditional boundary → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
negated conditional → KILLED

5323

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
Replaced integer modulus with multiplication → KILLED

5325

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLeftPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::leftPad → KILLED

5340

1.1
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLength_CharBuffer()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::length → KILLED

2.2
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLength_CharBuffer()]
negated conditional → KILLED

5363

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLowerCase()]
negated conditional → KILLED

5364

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLowerCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED

5366

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLowerCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED

5386

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLowerCase()]
negated conditional → KILLED

5387

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLowerCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED

5389

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLowerCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::lowerCase → KILLED

5395

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

2.2
Location : matches
Killed by : none
changed conditional boundary → SURVIVED

5402

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced integer subtraction with addition → KILLED

5406

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5408

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
changed conditional boundary → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced integer subtraction with addition → KILLED

4.4
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced integer addition with subtraction → KILLED

5.5
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced integer addition with subtraction → KILLED

5409

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5412

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Changed increment from 1 to -1 → KILLED

5419

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5420

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5422

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Changed increment from 1 to -1 → KILLED

5425

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5426

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5428

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Changed increment from 1 to -1 → KILLED

5432

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
changed conditional boundary → KILLED

5433

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5434

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Changed increment from 1 to -1 → KILLED

5438

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
changed conditional boundary → KILLED

5439

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
negated conditional → KILLED

5442

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Changed increment from 1 to -1 → KILLED

5444

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGetJaroWinklerDistance_StringString()]
replaced return value with null for org/apache/commons/lang3/StringUtils::matches → KILLED

5473

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
negated conditional → KILLED

5474

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::mid → KILLED

5476

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
negated conditional → KILLED

4.4
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
negated conditional → KILLED

5479

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
negated conditional → KILLED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

5482

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
negated conditional → KILLED

5483

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::mid → KILLED

5485

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testMid_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::mid → KILLED

5531

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5532

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::normalizeSpace → KILLED

5539

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5542

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5543

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5544

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
Changed increment from 1 to -1 → KILLED

5546

1.1
Location : normalizeSpace
Killed by : none
Changed increment from 1 to -1 → SURVIVED

5549

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
Changed increment from 1 to -1 → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5553

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5556

1.1
Location : normalizeSpace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::normalizeSpace → KILLED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
changed conditional boundary → KILLED

4.4
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testNormalizeSpace()]
negated conditional → KILLED

5610

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1241_2()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED

5629

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
negated conditional → KILLED

3.3
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
negated conditional → KILLED

4.4
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testOrdinalIndexOf()]
changed conditional boundary → KILLED

5630

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastOrdinalIndexOf()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED

5632

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1241_2()]
negated conditional → KILLED

5633

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastOrdinalIndexOf()]
negated conditional → KILLED

5638

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
negated conditional → KILLED

5640

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
negated conditional → KILLED

5641

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLastOrdinalIndexOf()]
Replaced integer subtraction with addition → KILLED

5643

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1241_2()]
Replaced integer addition with subtraction → KILLED

5645

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1241_2()]
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1241_2()]
changed conditional boundary → KILLED

5646

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testOrdinalIndexOf()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED

5648

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
Changed increment from 1 to -1 → KILLED

5649

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1193()]
changed conditional boundary → KILLED

5650

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsEqualsIndexOfTest]/[method:testLANG1241_2()]
replaced int return with 0 for org/apache/commons/lang3/StringUtils::ordinalIndexOf → KILLED

5683

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

5684

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::overlay → KILLED

5686

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

5690

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

5693

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

5696

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

5699

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

5702

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
negated conditional → KILLED

2.2
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

5707

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testOverlay_StringStringIntInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::overlay → KILLED

5724

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
negated conditional → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
negated conditional → KILLED

5725

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED

5727

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
negated conditional → KILLED

5729

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
negated conditional → KILLED

5730

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED

5734

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED

5772

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissing()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissing → KILLED

5810

1.1
Location : prependIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testPrependIfMissingIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase → KILLED

5833

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
negated conditional → KILLED

5834

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED

5838

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
changed conditional boundary → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
negated conditional → KILLED

5839

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
negated conditional → KILLED

5840

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
Changed increment from 1 to -1 → KILLED

5843

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED

5870

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_String()]
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_String()]
negated conditional → KILLED

5871

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_char()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED

5873

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::remove → KILLED

5923

1.1
Location : removeAll
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveAll_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeAll → KILLED

5951

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
negated conditional → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
negated conditional → KILLED

5952

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEnd → KILLED

5954

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
negated conditional → KILLED

5955

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEnd → KILLED

5957

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEnd()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEnd → KILLED

5987

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
negated conditional → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
negated conditional → KILLED

5988

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase → KILLED

5990

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
negated conditional → KILLED

5991

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase → KILLED

5993

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveEndIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase → KILLED

6042

1.1
Location : removeFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveFirst_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeFirst → KILLED

6077

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveIgnoreCase_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeIgnoreCase → KILLED

6113

1.1
Location : removePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemovePattern_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removePattern → KILLED

6140

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
negated conditional → KILLED

6141

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED

6143

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED

6171

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartString()]
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartString()]
negated conditional → KILLED

6172

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED

6174

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartString()]
negated conditional → KILLED

6175

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED

6177

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStart → KILLED

6206

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
negated conditional → KILLED

2.2
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
negated conditional → KILLED

6207

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase → KILLED

6209

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase → KILLED

6235

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_CharInt()]
negated conditional → KILLED

2.2
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

6238

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_CharInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6261

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

6262

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6264

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

6268

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

6269

1.1
Location : repeat
Killed by : none
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → SURVIVED

6271

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

3.3
Location : repeat
Killed by : none
negated conditional → SURVIVED

6272

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6275

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
Replaced integer multiplication with division → KILLED

6278

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMiddle()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6283

1.1
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
negated conditional → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
Replaced integer multiplication with division → KILLED

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
Replaced integer subtraction with addition → KILLED

5.5
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
changed conditional boundary → KILLED

6285

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
Replaced integer addition with subtraction → KILLED

6287

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6290

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

6293

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6318

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
negated conditional → KILLED

6319

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6323

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRepeat_StringStringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::repeat → KILLED

6350

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED

6382

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED

6417

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

3.3
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

4.4
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

6418

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED

6420

1.1
Location : replace
Killed by : none
negated conditional → SURVIVED

6424

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
negated conditional → KILLED

6425

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

6426

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemove_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED

6429

1.1
Location : replace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

6430

1.1
Location : replace
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : replace
Killed by : none
negated conditional → SURVIVED

3.3
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

6431

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringEscapeUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringEscapeUtilsTest]/[method:testEscapeCsvWriter()]
Replaced integer addition with subtraction → KILLED

6432

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

6434

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
Replaced integer addition with subtraction → KILLED

6435

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
Changed increment from -1 to 1 → KILLED

6438

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
negated conditional → KILLED

6441

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replace → KILLED

6496

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceAll_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceAll → KILLED

6520

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringCharChar()]
negated conditional → KILLED

6521

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringCharChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED

6523

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringCharChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED

6563

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

6564

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED

6566

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

6573

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

6576

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

6578

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

6585

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
negated conditional → KILLED

6586

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED

6588

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceChars_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceChars → KILLED

6629

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArray()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED

6687

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
changed conditional boundary → KILLED

6691

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6697

1.1
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

4.4
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

5.5
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6698

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED

6705

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6722

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6723

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6729

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6731

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

6739

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6740

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED

6749

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

6750

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArray()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

6753

1.1
Location : replaceEach
Killed by : none
Replaced integer subtraction with addition → SURVIVED

6754

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

6755

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : replaceEach
Killed by : none
Replaced integer multiplication with division → SURVIVED

6759

1.1
Location : replaceEach
Killed by : none
Replaced integer division with multiplication → SURVIVED

6761

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

6763

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6765

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6770

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
Replaced integer addition with subtraction → KILLED

6776

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
changed conditional boundary → KILLED

6777

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6783

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6785

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArray()]
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6794

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
changed conditional boundary → KILLED

6798

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
negated conditional → KILLED

6799

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArray()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED

6802

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEach → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
Replaced integer subtraction with addition → KILLED

6846

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplace_StringStringArrayStringArrayBoolean()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly → KILLED

6899

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveFirst_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceFirst → KILLED

6927

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceIgnoreCase_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceIgnoreCase → KILLED

6960

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceIgnoreCase → KILLED

6987

1.1
Location : replaceOnce
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnce_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceOnce → KILLED

7016

1.1
Location : replaceOnceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplaceOnceIgnoreCase_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase → KILLED

7062

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReplacePattern_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::replacePattern → KILLED

7080

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverse_String()]
negated conditional → KILLED

7081

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverse_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::reverse → KILLED

7083

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverse_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::reverse → KILLED

7106

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverseDelimited_StringChar()]
negated conditional → KILLED

7107

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverseDelimited_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::reverseDelimited → KILLED

7112

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverseDelimited_StringChar()]
removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED

7113

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testReverseDelimited_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::reverseDelimited → KILLED

7137

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
negated conditional → KILLED

7138

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::right → KILLED

7140

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
negated conditional → KILLED

7143

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
negated conditional → KILLED

7144

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::right → KILLED

7146

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
Replaced integer subtraction with addition → KILLED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testRight_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::right → KILLED

7169

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7194

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
negated conditional → KILLED

7195

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7197

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
Replaced integer subtraction with addition → KILLED

7198

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
negated conditional → KILLED

2.2
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

7199

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7201

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
negated conditional → KILLED

2.2
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

7202

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7204

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7231

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7232

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7234

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7239

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
Replaced integer subtraction with addition → KILLED

7240

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7241

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7243

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntChar()]
negated conditional → KILLED

2.2
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7244

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7247

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7248

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7250

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7251

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7255

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
changed conditional boundary → KILLED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
negated conditional → KILLED

7256

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
Replaced integer modulus with multiplication → KILLED

7258

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRightPad_StringIntString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rightPad → KILLED

7288

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

7289

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rotate → KILLED

7293

1.1
Location : rotate
Killed by : none
Replaced integer modulus with multiplication → SURVIVED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

3.3
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

4.4
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

7294

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rotate → KILLED

7298

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
removed negation → KILLED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
Replaced integer modulus with multiplication → KILLED

7301

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::rotate → KILLED

7327

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED

7355

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED

7384

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED

7418

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
replaced return value with null for org/apache/commons/lang3/StringUtils::split → KILLED

7441

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterType → KILLED

7459

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
negated conditional → KILLED

7462

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
negated conditional → KILLED

7463

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterType → KILLED

7469

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
Replaced integer addition with subtraction → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
changed conditional boundary → KILLED

7471

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
negated conditional → KILLED

7474

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterTypeCamelCase()]
negated conditional → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterTypeCamelCase()]
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
negated conditional → KILLED

7475

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterTypeCamelCase()]
Replaced integer subtraction with addition → KILLED

7476

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterTypeCamelCase()]
negated conditional → KILLED

7477

1.1
Location : splitByCharacterType
Killed by : none
Replaced integer subtraction with addition → SURVIVED

7481

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
Replaced integer subtraction with addition → KILLED

7486

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
Replaced integer subtraction with addition → KILLED

7487

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterType()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterType → KILLED

7515

1.1
Location : splitByCharacterTypeCamelCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByCharacterTypeCamelCase()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase → KILLED

7542

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBoolean()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparator → KILLED

7573

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparator → KILLED

7602

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeSeparatorPreserveAllTokens_StringString()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens → KILLED

7635

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeSeparatorPreserveAllTokens_StringStringInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens → KILLED

7654

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7660

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7661

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker → KILLED

7664

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7666

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker → KILLED

7675

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7678

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7679

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBoolean()]
changed conditional boundary → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7680

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
Changed increment from 1 to -1 → KILLED

7682

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
negated conditional → KILLED

7693

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
Replaced integer addition with subtraction → KILLED

7697

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeSeparatorPreserveAllTokens_StringString()]
negated conditional → KILLED

7698

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeSeparatorPreserveAllTokens_StringString()]
Changed increment from 1 to -1 → KILLED

7699

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeSeparatorPreserveAllTokens_StringString()]
negated conditional → KILLED

7706

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

7715

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker → KILLED

7743

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitPreserveAllTokens_String()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED

7779

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitPreserveAllTokens_StringChar()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED

7816

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitPreserveAllTokens_StringString_StringStringInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED

7856

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitPreserveAllTokens_StringString_StringStringInt()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens → KILLED

7874

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

7878

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

7879

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED

7886

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
changed conditional boundary → KILLED

7887

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

7888

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

7893

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

7900

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitPreserveAllTokens_StringChar()]
negated conditional → KILLED

7903

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringChar()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED

7925

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7929

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7930

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED

7938

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7940

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7941

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7942

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7944

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitByWholeString_StringStringBooleanInt()]
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

7951

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

7956

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
Changed increment from 1 to -1 → KILLED

7958

1.1
Location : splitWorker
Killed by : none
negated conditional → SURVIVED

7961

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
changed conditional boundary → KILLED

7962

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

7963

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

7965

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

7972

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → MEMORY_ERROR

7981

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
changed conditional boundary → KILLED

7982

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

7983

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

7985

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_StringString_StringStringInt()]
Changed increment from 1 to -1 → KILLED

7992

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

8000

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplitPreserveAllTokens_String()]
negated conditional → KILLED

8003

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSplit_String()]
replaced return value with null for org/apache/commons/lang3/StringUtils::splitWorker → KILLED

8029

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringString()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWith → KILLED

8044

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
negated conditional → KILLED

8045

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWith()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWith()]
negated conditional → KILLED

8049

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testGeorgianSample()]
changed conditional boundary → KILLED

8050

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED

8052

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWith → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWith → KILLED

8078

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWithAny()]
negated conditional → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWithAny()]
negated conditional → KILLED

8079

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWithAny()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWithAny → KILLED

8082

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWithAny()]
negated conditional → KILLED

8083

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWithAny()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWithAny → KILLED

8086

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsStartsEndsWithTest]/[method:testStartsWithAny()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWithAny → KILLED

8112

1.1
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced boolean return with false for org/apache/commons/lang3/StringUtils::startsWithIgnoreCase → KILLED

2.2
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRemoveStartIgnoreCase()]
replaced boolean return with true for org/apache/commons/lang3/StringUtils::startsWithIgnoreCase → KILLED

8138

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStrip_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::strip → KILLED

8169

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::strip → KILLED

8192

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
negated conditional → KILLED

8193

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccents()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripAccents → KILLED

8196

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED

8197

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAccentsIWithBar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripAccents → KILLED

8220

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAll()]
replaced return value with null for org/apache/commons/lang3/StringUtils::stripAll → KILLED

8250

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAll()]
negated conditional → KILLED

8251

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAll()]
replaced return value with null for org/apache/commons/lang3/StringUtils::stripAll → KILLED

8254

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAll()]
removed call to java/util/Arrays::setAll → KILLED

2.2
Location : lambda$stripAll$0
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAll()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::lambda$stripAll$0 → KILLED

8255

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripAll()]
replaced return value with null for org/apache/commons/lang3/StringUtils::stripAll → KILLED

8285

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
negated conditional → KILLED

8286

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStrip_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripEnd → KILLED

8289

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
negated conditional → KILLED

8290

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

8291

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
Changed increment from -1 to 1 → KILLED

8293

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
negated conditional → KILLED

8294

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripEnd_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripEnd → KILLED

8296

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
negated conditional → KILLED

8300

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testLANG666()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripEnd → KILLED

8329

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

8330

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStrip_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripStart → KILLED

8333

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

8334

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

8335

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
Changed increment from 1 to -1 → KILLED

8337

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripStart_StringString()]
negated conditional → KILLED

8338

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripStart_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripStart → KILLED

8340

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripStart_StringString()]
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripStart_StringString()]
negated conditional → KILLED

8344

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripStart → KILLED

8370

1.1
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToEmpty_String()]
negated conditional → KILLED

2.2
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToEmpty_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripToEmpty → KILLED

8397

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

8398

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripToNull → KILLED

8401

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::stripToNull → KILLED

2.2
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testStripToNull_String()]
negated conditional → KILLED

8429

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

8430

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstring_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED

8434

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstring_StringInt()]
changed conditional boundary → KILLED

8435

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
Replaced integer addition with subtraction → KILLED

8438

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

2.2
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

8441

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
negated conditional → KILLED

8445

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED

8484

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

8485

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstring_StringIntInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED

8489

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

2.2
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

8490

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testRotate_StringInt()]
Replaced integer addition with subtraction → KILLED

8492

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

8493

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstring_StringIntInt()]
Replaced integer addition with subtraction → KILLED

8497

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

8502

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

8506

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstring_StringIntInt()]
negated conditional → KILLED

8509

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
negated conditional → KILLED

2.2
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

8513

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testAbbreviateMarkerWithEmptyString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substring → KILLED

8542

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringInt()]
negated conditional → KILLED

8543

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED

8546

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringInt()]
negated conditional → KILLED

8549

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringInt()]
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED

8581

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringString()]
negated conditional → KILLED

8582

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED

8584

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringString()]
negated conditional → KILLED

8588

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringString()]
negated conditional → KILLED

8591

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfter → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfter_StringString()]
Replaced integer addition with subtraction → KILLED

8621

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringInt()]
negated conditional → KILLED

8622

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED

8625

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringInt()]
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringInt()]
negated conditional → KILLED

8628

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringInt()]
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED

8661

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
negated conditional → KILLED

8662

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED

8664

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
negated conditional → KILLED

8668

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
negated conditional → KILLED

8671

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringAfterLast → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringAfterLast_StringString()]
Replaced integer addition with subtraction → KILLED

8700

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringInt()]
negated conditional → KILLED

8701

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED

8704

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringInt()]
negated conditional → KILLED

8705

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED

8707

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED

8738

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
negated conditional → KILLED

2.2
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
negated conditional → KILLED

8739

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED

8741

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
negated conditional → KILLED

8745

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
negated conditional → KILLED

8746

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED

8748

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBefore_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBefore → KILLED

8779

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBeforeLast_StringString()]
negated conditional → KILLED

2.2
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBeforeLast_StringString()]
negated conditional → KILLED

8780

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBeforeLast_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBeforeLast → KILLED

8783

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBeforeLast_StringString()]
negated conditional → KILLED

8784

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBeforeLast_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBeforeLast → KILLED

8786

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBeforeLast_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBeforeLast → KILLED

8811

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED

8842

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
negated conditional → KILLED

8843

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED

8846

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
negated conditional → KILLED

8847

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
Replaced integer addition with subtraction → KILLED

8848

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
negated conditional → KILLED

8849

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
Replaced integer addition with subtraction → KILLED

8852

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringBetween_StringStringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::substringBetween → KILLED

8878

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

8882

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

8883

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
replaced return value with null for org/apache/commons/lang3/StringUtils::substringsBetween → KILLED

8889

1.1
Location : substringsBetween
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

8891

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
changed conditional boundary → KILLED

8894

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
Replaced integer addition with subtraction → KILLED

8896

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

8900

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
Replaced integer addition with subtraction → KILLED

8902

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
negated conditional → KILLED

8905

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsSubstringTest]/[method:testSubstringsBetween_StringStringString()]
replaced return value with null for org/apache/commons/lang3/StringUtils::substringsBetween → KILLED

8936

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
negated conditional → KILLED

8937

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::swapCase → KILLED

8943

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
negated conditional → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
changed conditional boundary → KILLED

8946

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
negated conditional → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
negated conditional → KILLED

8948

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
negated conditional → KILLED

8953

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
Changed increment from 1 to -1 → KILLED

8954

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
Replaced integer addition with subtraction → KILLED

8956

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testSwapCase_String()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::swapCase → KILLED

8976

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
negated conditional → KILLED

8979

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
negated conditional → KILLED

8980

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
replaced return value with null for org/apache/commons/lang3/StringUtils::toCodePoints → KILLED

8986

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
changed conditional boundary → KILLED

2.2
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
negated conditional → KILLED

8988

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
Replaced integer addition with subtraction → KILLED

8990

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToCodePoints()]
replaced return value with null for org/apache/commons/lang3/StringUtils::toCodePoints → KILLED

9007

1.1
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToEncodedString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::toEncodedString → KILLED

9018

1.1
Location : toRootLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToRootLowerCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::toRootLowerCase → KILLED

2.2
Location : toRootLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToRootLowerCase()]
negated conditional → KILLED

9029

1.1
Location : toRootUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToRootUpperCase()]
negated conditional → KILLED

2.2
Location : toRootUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToRootUpperCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::toRootUpperCase → KILLED

9049

1.1
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testToString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::toString → KILLED

9053

1.1
Location : toStringOrEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testJoin_Objects()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::toStringOrEmpty → KILLED

9080

1.1
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testTrim()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::trim → KILLED

2.2
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testTrim()]
negated conditional → KILLED

9105

1.1
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testTrimToEmpty()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::trimToEmpty → KILLED

2.2
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testTrimToEmpty()]
negated conditional → KILLED

9132

1.1
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testTrimToNull()]
negated conditional → KILLED

2.2
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTrimStripTest]/[method:testTrimToNull()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::trimToNull → KILLED

9168

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED

9232

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
negated conditional → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
changed conditional boundary → KILLED

9235

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
negated conditional → KILLED

9238

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
negated conditional → KILLED

9239

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED

9241

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
negated conditional → KILLED

2.2
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

9244

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
negated conditional → KILLED

2.2
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

9245

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
Replaced integer addition with subtraction → KILLED

9246

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED

9248

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testTruncate_StringInt()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::truncate → KILLED

9274

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
negated conditional → KILLED

9275

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::uncapitalize → KILLED

9280

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
negated conditional → KILLED

9282

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::uncapitalize → KILLED

9287

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
Changed increment from 1 to -1 → KILLED

9288

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
negated conditional → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
changed conditional boundary → KILLED

9290

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
Changed increment from 1 to -1 → KILLED

9291

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
Replaced integer addition with subtraction → KILLED

9293

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnCapitalize()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::uncapitalize → KILLED

9321

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

9322

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED

9325

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
Replaced integer subtraction with addition → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

9327

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
Replaced integer subtraction with addition → KILLED

9329

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED

9332

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED

9361

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringString()]
Replaced integer multiplication with division → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
changed conditional boundary → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

4.4
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

5.5
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

9362

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED

9365

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringChar()]
negated conditional → KILLED

9366

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED

9369

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUnwrap_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::unwrap → KILLED

9392

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUpperCase()]
negated conditional → KILLED

9393

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUpperCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED

9395

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUpperCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED

9415

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUpperCase()]
negated conditional → KILLED

9416

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUpperCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED

9418

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testUpperCase()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::upperCase → KILLED

9430

1.1
Location : valueOf
Killed by : org.apache.commons.lang3.StringUtilsValueOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsValueOfTest]/[method:testValueOfCharNull()]
negated conditional → KILLED

2.2
Location : valueOf
Killed by : org.apache.commons.lang3.StringUtilsValueOfTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsValueOfTest]/[method:testValueOfCharNull()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::valueOf → KILLED

9454

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringChar()]
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringChar()]
negated conditional → KILLED

9455

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED

9458

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED

9490

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringString()]
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringString()]
negated conditional → KILLED

9491

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED

9494

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrap_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrap → KILLED

9523

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

9524

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED

9526

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

9527

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
Replaced integer subtraction with addition → KILLED

9528

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

9529

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED

9532

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
Replaced integer addition with subtraction → KILLED

9533

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

9537

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
negated conditional → KILLED

9540

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringChar()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED

9573

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

9574

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED

9577

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

9578

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

9579

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

9580

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED

9583

1.1
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

9584

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

9588

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
negated conditional → KILLED

9591

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.[engine:junit-jupiter]/[class:org.apache.commons.lang3.StringUtilsTest]/[method:testWrapIfMissing_StringString()]
replaced return value with "" for org/apache/commons/lang3/StringUtils::wrapIfMissing → KILLED

Active mutators

Tests examined


Report generated by PIT 1.15.2